0
插入型我想定義模板內模板
template<template<typename...> class TT, size_t n, class T, class... U>
struct insert;
這將插入的n
個地方型T
在參數U...
間內模板TT
。所以它應該以這樣的方式工作,例如, insert<std::tuple, 2, char, int,int,int,int>
擴展爲std::tuple<int,int, char, int,int>
,即char
正好插入到元組參數的中間。
實現以下
template<template<typename...> class TT, size_t n, class T, class U1, class... U>
struct insert<TT, n, T, U1, U...>
{
template<class...V>
using templ =
/* template<typename...> */
typename
insert
<
typename insert<TT, n - 1, T, U...>::templ,
0,
U1
>::templ <V...> ; // <-- error C2988: unrecognizable template
// declaration/definition
using type = typename templ < > ;
};
template<template<typename...> class TT, class T, class... U>
struct insert < TT, 0, T, U... >
{
template<class...V>
using templ = TT<T, U..., V...>;
using type = typename templ < > ;
};
但是編譯失敗。 感謝您的幫助。
完美!這就是所需要的,加上這麼簡單明瞭。 – 2014-09-25 12:03:13