dimanche 21 décembre 2014

What are the 6 dots in template parameter packs ?

While looking at this question I found myself in the cpp reference site where I noticed a strange and new to me syntax :



template<class Ret, class... Args>
struct is_function<Ret(Args......)volatile &&> : std::true_type {};


Yep, 6 dots ! Initially I thought this was a typo, but after checking the libstdc++ source again there it was eg at line 444 :



template<typename _Res, typename... _ArgTypes>
struct is_function<_Res(_ArgTypes......) volatile &&> : public true_type { };


Is this a valid syntax ? Dot dot dot, are used to pack and unpack parameter packs ? What do 6 dots do ?


Aucun commentaire:

Enregistrer un commentaire