Bir tuple tipiniz olduğunu ve başka bir şablonu başlatmak için şablon parametre paketini ayıklamak istediğinizi varsayalım.Değişken şablon şablonu?
template < typename Tuple, template <typename...> typename What >
struct PutTupleInT;
template < typename... Types, template <typename...> typename What >
struct PutTupleInT<std::tuple<Types...>, What>
{
using Result = What<Types...>;
};
Ama ne arzu şablon değişken şablon ise: bu tip şablon ise, o zaman bir böyle yarar olabilir? Bir tür şablon için template <typename...> typename What
"yer tutucu" iken, bir değişken şablonu için "yer tutucu" nedir?
Aşağıdakileri, clang-4.0.0 için (şimdi otomatik türle birlikte olmayan şablon parametrelerini destekleyen tek derleyici) denedim, ancak başarısız oldu. Aslında C++ 17 için doğru bir sözdizimi olup olmadığından emin değilim.
template < typename Tuple, template <typename...> auto What >
struct PutTupleInV;
template < typename... Types, template <typename...> auto What >
struct PutTupleInV<std::tuple<Types...>, What>
{
static constexpr auto value = What<Types...>;
};
'decltype (vartempl)' işlevini kullanamaz ve değişken şablonun türünü ayıklayamazsınız, aslında ilgilendiğiniz şey nedir? – skypjack
@skypjack Üzgünüm, ne demek istediğini anlamıyorum. – Vahagn