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
K-ballo has quit [Quit: K-ballo]
inertia has joined #ste||ar
diehlpk has joined #ste||ar
hkaiser has quit [Quit: Bye!]
inertia has quit [Quit: bye]
diehlpk has quit [Quit: Leaving.]
Yorlik has joined #ste||ar
Yorlik_ has joined #ste||ar
Yorlik has quit [Ping timeout: 255 seconds]
Yorlik_ has quit [Ping timeout: 246 seconds]
heller[m] has quit [Quit: You have been kicked for being idle]
diehlpk has joined #ste||ar
diehlpk has quit [Ping timeout: 255 seconds]
hkaiser has joined #ste||ar
K-ballo has joined #ste||ar
hkaiser has quit [Quit: Bye!]
diehlpk has joined #ste||ar
<gonidelis[m]> hkaiser_: joining in 3
Yorlik has joined #ste||ar
diehlpk has quit [Quit: Leaving.]
diehlpk has joined #ste||ar
diehlpk has quit [Quit: Leaving.]
diehlpk has joined #ste||ar
diehlpk has quit [Quit: Leaving.]
diehlpk has joined #ste||ar
diehlpk has quit [Client Quit]
diehlpk has joined #ste||ar
diehlpk has left #ste||ar [#ste||ar]
aalekhn has joined #ste||ar
<gonidelis[m]> I am diggin into ctad and implicitly generated deduction guides and in point it mentions:
<gonidelis[m]> "_When, in a function-style cast or in a variable's declaration, the type specifier consists solely of the name of a primary class template C (i.e., there is no accompanying template argument list)_"
<gonidelis[m]> Does `std::pair<C, T> a(c, t);` fall into the category mentioned in the parenthesis? K-ballo (given that the declaration takes place inside a struct `template <typename T, typename C>`)
<gonidelis[m]> * I am diggin into ctad and implicitly generated deduction guides and at some point it mentions:
<gonidelis[m]> "_When, in a function-style cast or in a variable's declaration, the type specifier consists solely of the name of a primary class template C (i.e., there is no accompanying template argument list)_"
<gonidelis[m]> Does `std::pair<C, T> a(c, t);` fall into the category mentioned in the parenthesis? K-ballo (given that the declaration takes place inside a struct `template <typename T, typename C>`)
<K-ballo> no
<K-ballo> the primary class template is `std::pair` (i.e., there is no accompanying template argument list `<C, T>`)
<gonidelis[m]> sheesh
<gonidelis[m]> that's why it's called primary ?
<gonidelis[m]> `C` in this case is `std::pair`
<K-ballo> > not derived from, caused by, or based on anything else; original.
<K-ballo> std::pair<C, T> is not a class template, it's a class
<gonidelis[m]> thanks!
<gonidelis[m]> K-ballo: following it says: "_If C is defined, for each constructor (or constructor template) Ci declared in the named primary template (if it is defined), a fictional function template Fi, is constructed_".... I thought `C` was the primary template...
<K-ballo> as opposed to ?
<gonidelis[m]> oh i thought it was saying "If C is defined for each ctor" (no comma) ;/
<gonidelis[m]> so is that sentence equivalent?
<gonidelis[m]> "_If C is defined, for each constructor (or constructor template) Ci declared in C (if it is defined), ... _"
<K-ballo> yes
<K-ballo> reads a bit awkward
<gonidelis[m]> thanks
<gonidelis[m]> again
<gonidelis[m]> the "if it is defined" clause refers to Ci, right? Not C.
<gonidelis[m]> inside the parenthesis i mean
<K-ballo> no, constructor definitions aren't needed, just declarations
<K-ballo> the "if it is defined" is redundant for C, which is already required to be defined earlier in the sentence, as far as I can tell
<gonidelis[m]> yes exactly
<gonidelis[m]> so, yes it refers to the ctor Ci
<K-ballo> no
<gonidelis[m]> ah get it
<gonidelis[m]> the parenthesis is redundant
<gonidelis[m]> lol why would you even put that there
<K-ballo> probably the result of edits
<K-ballo> "If C is defined, for each constructor Ci of C, ..."
<gonidelis[m]> the ctor Ci needs not to be defined for the fictional Fi function template to be constructed
<gonidelis[m]> just needs to be dclared
<K-ballo> yes (if it weren't declared it can't possibly exist)
<K-ballo> I think it's trying to refer to the fact that constructors for class specializations of C aren't looked at
<gonidelis[m]> i submitted a request for the parenthesis to be removed nevertheless ¯_(ツ)_/¯
<gonidelis[m]> K-ballo: what do you mean ctros for specializations of C aren't looked at?
<gonidelis[m]> i thought it was saying the exact opposite
<K-ballo> what do you think class specializations of C are?
<gonidelis[m]> when C is being specialized with a (implicit or explicit) template argument
<gonidelis[m]> ?
<K-ballo> a specialization is a template definition that applies only to a specific set of template parameters (explicit specialization) or a family of them (partial specialization)
<K-ballo> CTAD for std::vector wont look at the constructors of the explicit std::vector<bool> specialization
<K-ballo> CTAD for std::unique_ptr wont look at the constructors of the partial std::unique_ptr<T[]> specialization
<gonidelis[m]> I thought it would look at the vector<bool> constructor and just avoid it no/
<gonidelis[m]> ?
<K-ballo> no
<gonidelis[m]> also std::vector on its own is nothing. i reckon you talk about `std::vector v{1,2}` or sth
<K-ballo> no, the fictional function process is independent of arguments
<gonidelis[m]> what is it then?
<gonidelis[m]> a fictional function
<K-ballo> the thing you just quoted..
<K-ballo> the process by which CTAD deduces types based on the constructors
<gonidelis[m]> just a function template that..... has the same template arguments as C
<gonidelis[m]> ye i know
<K-ballo> C = std::vector
<K-ballo> regardless of its initialization
<gonidelis[m]> ok and it can be specified separately from its initialization
<gonidelis[m]> you saying ^^
<gonidelis[m]> ?
<K-ballo> ?
<gonidelis[m]> and when specified it will not even regard the ctors of std::vector<bool>
hkaiser has joined #ste||ar
<Yorlik> Better functional fiction than a fictional function ;)
diehlpk has joined #ste||ar
Yorlik has quit [Ping timeout: 244 seconds]
diehlpk has quit [Quit: Leaving.]
K-ballo has quit [Read error: Connection reset by peer]
K-ballo has joined #ste||ar
diehlpk has joined #ste||ar
diehlpk has quit [Quit: Leaving.]
diehlpk has joined #ste||ar
diehlpk has quit [Quit: Leaving.]
diehlpk has joined #ste||ar
diehlpk has quit [Ping timeout: 256 seconds]