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