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
hkaiser has joined #ste||ar
hkaiser has quit [Read error: Connection reset by peer]
hkaiser has joined #ste||ar
Yorlik_ has joined #ste||ar
Yorlik has quit [Ping timeout: 260 seconds]
hkaiser has quit [Quit: Bye!]
Yorlik__ has joined #ste||ar
Yorlik_ has quit [Ping timeout: 245 seconds]
hkaiser has joined #ste||ar
hkaiser has quit [Quit: Bye!]
<gonidelis[m]> use std::remove_cvref won't work?
<gonidelis[m]> or we may be needing the opposite
<gonidelis[m]> K-ballo: might have an idea
<gnikunj[m]> Isidoros: std::decay your template type to get rid of multiple specializations
<gonidelis[m]> gnikunj: as in?
<Isidoros[m]> You mean line 4 -> `struct is_trivially_relocatable : std::is_trivially_copyable<std::decay_t<T>>`?
<satacker[m]> Yep
<satacker[m]> But add remove cv
<satacker[m]> I guess
<gnikunj[m]> Isidoros: yes, that's what I meant.
<gnikunj[m]> satacker: std::decay does remove cv stuff too
<gnikunj[m]> It does exactly what Isidoros is trying to do here
<satacker[m]> If T is "array of U" or reference to it, the member typedef type is U*. does it?
<K-ballo> remove_cv_ref, remove_extents
<K-ballo> will also cover cases like T[][][]
<K-ballo> with actual numbers in there, enough to make things vlaid
<K-ballo> sorry it's remove_ALL_extents
<gonidelis[m]> Isidoros: so it's bot remove_all_extents and remove_cv_ref
<gonidelis[m]> in the way that you showed
<gonidelis[m]> nice
<Isidoros[m]> I am trying to get is_trivially_relocatable<const T> to fall back to is_trivially_relocatable<T>, which could be specialized for T. The line 4 change would make it fall to is_trivially_copyable<T> instead
<K-ballo> if <T> can be specialized you have no option but to manually recurse
<K-ballo> make sure to cover T[N] as well
<Isidoros[m]> Oh would known size arrays not be covered by T[]?
<K-ballo> no
<Isidoros[m]> Thank you :)
<K-ballo> also T const volatile will be ambiguous
<Isidoros[m]> Do you think adding those two cases will cover it?... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/2d165afcfcc4fd0d3015f4fddd7ffc945c7f4b83>)
<K-ballo> you should do something with && too
<K-ballo> although I would just remove the & specialization
<K-ballo> are you even relocating the reference or the T?
<Isidoros[m]> The underlying type
<K-ballo> how? in which situation
Yorlik_ has joined #ste||ar
sivoais_ has joined #ste||ar
Yorlik__ has quit [*.net *.split]
sivoais has quit [*.net *.split]
hkaiser has joined #ste||ar
hkaiser has quit [Quit: Bye!]