2011-12-26 28 views
-1

可能类似于我怎么能部分地专注我的类模板int_ <...>,long_ <...>

template <class C> 
struct apply<template<> struct T<C N>> 
{ 
    typedef typename T<N + 1>::type type; 
}; 

只是举例,它返回下一个整型常量类型。

+1

我不明白你的问题是..希望我不是唯一一个:) – kukyakya 2011-12-26 11:35:13

+0

我想为int_ ,long_ 和其他类型的模板专门化。它似乎非常棘手。 – Yola 2011-12-26 11:39:43

+1

SO是问与答网站,不是论坛。而不是回应评论,你应该编辑你的问题来澄清它。 [示例代码](http://sscce.org/)应该是完整的,但要简洁明了。这个问题目前是不可理解的,因为你没有给出你想要专门化模板的声明。此外,问题应该出现在标题和正文中。 – outis 2011-12-26 11:49:47

回答

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,不过,所以要小心。

+0

+1,谢谢能否做到这样的事情:** template class TInt,CN> ** – Yola 2011-12-26 12:02:18

+0

@Yola:我没有理解你的语法。那应该是什么?模板参数必须是类型,对象或模板。 – 2011-12-26 12:21:58

+0

我仍然要为每个整型常量类编写泛型类,但如果可能的话,它对我来说似乎太棘手。谢谢,并申请。 – Yola 2011-12-26 12:32:39

相关问题