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 quit [Quit: Bye!]
Yorlik__ has joined #ste||ar
Yorlik_ has quit [Ping timeout: 240 seconds]
hkaiser has joined #ste||ar
hkaiser has quit [Quit: Bye!]
K-ballo1 has joined #ste||ar
K-ballo has quit [Ping timeout: 255 seconds]
K-ballo1 is now known as K-ballo
RostamLog has quit [Ping timeout: 240 seconds]
RostamLog has joined #ste||ar
tufei has quit [*.net *.split]
K-ballo1 has joined #ste||ar
K-ballo has quit [Ping timeout: 276 seconds]
K-ballo1 is now known as K-ballo
tufei has joined #ste||ar
hkaiser has joined #ste||ar
hkaiser has quit [Quit: Bye!]
hkaiser has joined #ste||ar
hkaiser has quit [Quit: Bye!]
<gonidelis[m]> K-ballo: https://godbolt.org/z/1xrqjqEhE why?
<K-ballo> different types are different types
<K-ballo> is_same tells whether two (cv-qual'd) types are the same type
<satacker[m]> K-ballo: makes sense, it's like comparing Foo and Bar, initially I was confused because Foo = A<a,b> and Bar = A<b,a>
<gonidelis[m]> so the question is why a variante of typeA, typeB is not the same as a variant of typeB,typeA
<K-ballo> that's not an interesting question, they just aren't
<K-ballo> and more generaly, A<a,b> and A<b,a> are not the same type unless a and b are
<gonidelis[m]> that I get
<gonidelis[m]> semantically it makes sense and is interesting to me
<K-ballo> semantically?
<gonidelis[m]> or at least i fail to understand its essence
<K-ballo> note different variants aren't even compatible
<K-ballo> you can't assign variant<int, float> to variant<float, int>, nor compare, nor.. despite that actually making semantic sense (while still being different types)
<gonidelis[m]> right
<gonidelis[m]> satacker[m]: that only validates the point
<gonidelis[m]> maybe I need to understand how std::variant works underneath
<K-ballo> no, that's completely irrelevant
<K-ballo> same type is not answered by looking past the type name
<gonidelis[m]> it's using std::visit, which uses heap (??)
<K-ballo> nothing in the implementation of std::variant will affect typeness
<gonidelis[m]> oh so it's just the type name itself
<gonidelis[m]> and just that
<satacker[m]> K-ballo: ughhh, right, got it
<K-ballo> well, the identity, but yeah
<K-ballo> the full qualified name, and in case of template specializations, those of all the arguments in order
<gonidelis[m]> although float is definately not an alternative name for int :)
<K-ballo> float and int are just as different types as are variant<float, int> and variant<int, float>
<gonidelis[m]> K-ballo: okok
<K-ballo> A<int, float> is the same type as A<int, float>, that's.. axiomatic
<gonidelis[m]> which by your word should be different
<K-ballo> a type T is the same type as itself (and only itself)
<gonidelis[m]> another "this is gloablly true except these X special cases C++ thing"
<K-ballo> what? no
<K-ballo> what's the special case?
<gonidelis[m]> int and float are the same
<K-ballo> no, they are not
<gonidelis[m]> though their full qualified name isn't
<K-ballo> where do you take that from?
<gonidelis[m]> sorry i didn't see the satacker 's code was specializing A
<gonidelis[m]> my bad
<gonidelis[m]> you are absolutely right
<gonidelis[m]> but that only validates your first sentence
<K-ballo> what's my first sentence?
<gonidelis[m]> "the full qualified name, "
<gonidelis[m]> "and in case of template specializations, those of all the arguments in order"
<gonidelis[m]> the second one
<K-ballo> my first sentence is the second one, ok :)
<gonidelis[m]> ...
<K-ballo> two types named foo living in different namespaces are different types
<K-ballo> that's the first part
<K-ballo> a template is not a type, that's the second part
K-ballo has quit [Ping timeout: 240 seconds]
K-ballo has joined #ste||ar