可能类似
template <class C>
struct apply<template<> struct T<C N>>
{
typedef typename T<N + 1>::type type;
};
例如它返回下一个整数常量类型。
答案 0 :(得分:1)
对于任何固定类型,您可以直接专攻:
template <typename> struct apply; // primary template
template <unsigned int N>
struct apply<int_<N>>
{
typedef int_<N + 1> type;
};
您还可以专注于采用一个整数参数的模板:
template <template <unsigned int> class TInt, unsigned int N>
struct apply<TInt<N>>
{
typedef TInt<N + 1> type;
};
后者将匹配任何 template <unsigned int> class
,所以要小心。