hkaiser changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar-group.org | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | This channel is logged: irclog.cct.lsu.edu
diehlpk has joined #ste||ar
Yorlik_ has joined #ste||ar
Yorlik has quit [Ping timeout: 268 seconds]
diehlpk has quit [Quit: Leaving.]
hkaiser has quit [Quit: Bye!]
K-ballo has quit [Ping timeout: 244 seconds]
K-ballo has joined #ste||ar
Kalium has quit [Ping timeout: 240 seconds]
Kalium has joined #ste||ar
hkaiser has joined #ste||ar
hkaiser has quit [Read error: Connection reset by peer]
hkaiser has joined #ste||ar
K-ballo1 has joined #ste||ar
K-ballo has quit [Ping timeout: 240 seconds]
K-ballo1 is now known as K-ballo
<satacker[m]> hkaiser: please see https://godbolt.org/z/xcbb48nPs
<hkaiser> ok, what should I look at?
<satacker[m]> There are two implementations using SFINAE
<satacker[m]> And both fail
<hkaiser> should line 22 be `= true`?
<satacker[m]> Yeah my bad, but it’ll still fail
<hkaiser> ok, will have a closer look a bit later today
<satacker[m]> Yeah, i have a feeling that I am somewhat stuck here
<satacker[m]> Appreciate your help
<hkaiser> why is line 13 !requires (not)?
<satacker[m]> I was puzzled by that too, but it’s the way it was by Lewis Baker
<hkaiser> satacker[m]: in case it helps, we have HPX_HAS_MEMBER_XXX_TRAIT_DEF() which generates a traits checking for a given member name
<satacker[m]> The best approach so far for detecting whether there is at least one declaration of await_transform on the... (full message at https://libera.ems.host/_matrix/media/r0/download/libera.chat/c88532a36ea95e0e9a6d783b3ef8eb086429671a)
<satacker[m]> — lewis
<hkaiser> yes, makes sense
<satacker[m]> So my true in cpp_17 will become false
<satacker[m]> And vice versa
<satacker[m]> Then all of them pass
<satacker[m]> https://godbolt.org/z/b8rrqaqf9 all pass
<hkaiser> good
<satacker[m]> Finally
<satacker[m]> But I don’t understand why &Promise::await_transform is not detected without this clever trick
<hkaiser> read Lewis' comment again
<satacker[m]> Okay, so in the lookup phase, the await_transform is not a function and hence
<satacker[m]> * No still some doubts
<satacker[m]> yes2 fails because it has two await_transforms and &Promise::await_transform is ill formed
<hkaiser> nod
<satacker[m]> don't get what yes, yes3, yes6 fails
<satacker[m]> Is it because look up cannot find the address as they are templated?
<hkaiser> most likely
<satacker[m]> Okay, it must be instantiated of &Promise::await_transform but when an object inherits from Promise it messes up if it gets two await_transforms which we can utilize
<satacker[m]> for our case
<satacker[m]> Thanks, understood
<satacker[m]> So in the latter it didn't matter if it's not instantiated
<hkaiser> satacker[m]: as said, you could simply use HPX_HAS_MEMBER_XXX_TRAIT_DEF(await_transform) which generates a has_await_traisform<> trait plus the _t and _v variants
<satacker[m]> Yes, will do that, thanks
<satacker[m]> It was fun
<hkaiser> sure
<hkaiser> np
K-ballo has quit [Ping timeout: 240 seconds]
diehlpk has joined #ste||ar
diehlpk has quit [Client Quit]
diehlpk has joined #ste||ar
K-ballo has joined #ste||ar
diehlpk1 has joined #ste||ar
diehlpk has quit [Ping timeout: 244 seconds]
K-ballo1 has joined #ste||ar
K-ballo has quit [Ping timeout: 264 seconds]
K-ballo1 is now known as K-ballo
<gonidelis[m]> how safe is statically typecasting a struct to a void and back?
<K-ballo> pointers, presumably
<K-ballo> there's no coming back from a cast to void
<K-ballo> T* to void* and back to T* is standard behavior
diehlpk1 has quit [Quit: Leaving.]
diehlpk has joined #ste||ar
Yorlik_ is now known as Yorlik
diehlpk has quit [Quit: Leaving.]
ms[m] has quit [Ping timeout: 240 seconds]
rtohid[m] has quit [Ping timeout: 240 seconds]
rtohid[m] has joined #ste||ar
ms[m] has joined #ste||ar
Yorlik has quit [Ping timeout: 255 seconds]
K-ballo has quit [Ping timeout: 244 seconds]
K-ballo has joined #ste||ar