是否有某種方式將模板部分綁定到參數類型?例如,我有以下的模板:部分模板綁定,創建新模板類型
template<typename T, typename Q> struct generic { };
而且我還有一個模板,需要一個模板類作爲參數,期待能夠創建它的實例與第一類:
template<typename T, template<typename> class Impl>
struct wrapper {
Impl<T> foo;
};
這將接受一個簡單的模板,如template<typename T>
而不做更改。我現在想要做的是部分綁定generic
模板,僅指定Q
並將其傳遞到wrapper
。製作了一些語法,也許是這樣的:
template<typename T> bound = generic<T,some_type>;
我知道我幾乎能得到我想要使用的是什麼繼承:
template<typename T> bound : public generic<T,some_type> { };
我希望雖然雖則避免這種情況,因爲它出現問題的原因構造和在基類中定義的運算符。
'template using bound = generic ;'?又名「template-typedef」? –
@BartekBanachewicz,看起來不錯...我不能測試它,因爲我在GCC 4.6上,它不支持它。這可能意味着沒有早期的功能。 –
這個特性也被認爲是* Template Aliases *,根據[這個圖表](http://gcc.gnu.org/projects/cxx0x.html),它確實支持自從'4.7'。 –