4
嗯,這就是我想要實現的。我有這樣的結構:模板類,其參數必須是另一個模板類
現在我想寫一個多模板結構:
template<typename r> struct q
{
//
};
模板應該接受的struct r
專業化,我想有機會獲得模板這個實例的參數。
爲了讓自己更清楚:我希望能夠寫這樣的事:
using some_specialisation_of_q = q< s<T1,T2,T3>::r<5,6,7> >;
some_specialisation_of_q varname;
,我想能夠有T1,T2,T3
,5,6,7
訪問(或任何其他模板在q
的定義中傳遞給專用s
和r
的參數)。
我第一次嘗試類似的東西:
template<template<typename...Ts> template<int...Is> typename R, typename= typename std::enable_if<std::is_same<R, s<Ts...>::r<Is...>>::value>::type>
struct q
{
//
}
但不幸的是這將產生編譯器錯誤。
這是如何實現的?
'r'將發佈'TS ...'提取。否則,這是一個非推斷的上下文。 –