Solved Template dependant argument
-
#include <iostream> template<class T1> struct MyStruct { typedef T1 type; T1 data; } int main() { MyStruct<int> myData; MyStruct<myData::type> myDataTyped; }
how to make
MyStruct<myData::type> myDataTyped;
to work? -
Hi!
template<class T1> struct MyStruct { using t1_type = T1; T1 data; }; // ... MyStruct<int> myData; MyStruct<decltype(myData)::t1_type> myDataTyped; myDataTyped.data = 666;
-
@Wieland said in Template dependant argument:
decltype(myData)
what does
decltype(myData)
returns so we can access itstype
member? -
@Kofr The type of
myData
isMyStruct<int>
, thusdecltype(myData)
yieldsMyStruct<int>
. See also: decltype specifier. -
Since both variables are supposed to be of the same type it can even be shortened as
MyStruct<int> myData; decltype(myData) myDataTyped;