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]
<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[]?