A
Hallo,
mich würde mal interessieren, wo bei den Variadic Templates gecastet wird,
und ob man auf die Typumwandlung einfluß hat.
Also zum Beispiel
template <typename T1,size_t D>
class leaf
{
public:
template<typename... T2>
leaf(T1 const val,T2... args);
leaf(T1 const val);
private:
unsigned char c;
T1 _data[D];
};
template <typename T1, size_t D>
template<typename... T2>
leaf<T1,D>::leaf(T1 const val, T2... args)
{
std::cout <<"\nval\t" << val <<"typeid(val)" << typeid(val).name() <<"\ttypeid(double)" <<typeid(double).name() ;
std::cout <<"\n sizeof...(args)" <<sizeof...(args);
std::cout <<"\n sizeof...(args)" <<sizeof...(T2);
leaf<T1, D>(args...);
}
template <typename T1, size_t D>
leaf<T1,D>::leaf(T1 const val)
{
std::cout <<"\nval\t" << val <<"typeid(val)" << typeid(val).name() <<"\ttypeid(double)" <<typeid(double).name();
}
Wenn in nun Folgendes Instanziere:
leaf<double,3> _leaf( 0.1, (short) 10.01 , (char)1.1 , 1 , 1.234);
Werden die Ganzzahl Typen wieder nach double gecastet.
Gibt es denn eine Möglichkeit, auf die Typumwandlung Eifluß zu nehmen ??
Ev. um etwas in der Richtung
leaf<EigenerTyp,3> _leaf(EigenerTyp::KOnstruktor(Argumente), EigenerTyp::KOnstruktor(Argumente) ,etc);
zu instanzieren ??
Grüße