c – 如何解决功能模板的部分专业化?

前端之家收集整理的这篇文章主要介绍了c – 如何解决功能模板的部分专业化?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,我有一个类:
class A
{
    enum {N = 5};
    double mVariable;

    template<class T,int i>
    void f(T& t)
    {
        g(mVariable); // call some function using mVariable.
        f<T,i+1>(t); // go to next loop
    }

    template<class T>
    void f<T,N>(T& t)
    {} // stop loop when hit N.
};

功能模板不允许部分专业化.在我的情况下,我该如何解决

我略微改变了阿恩·默兹的例子,就像:

template<int n>
struct A
{
    enum {N = n};
    ...
};

并使用A like:

A<5> a;

我无法在Visual Studio 2012上编译.它是编译器错误还是别的?这很奇怪

编辑:检查.它是一个Visual Studio错误.

猜你在找的C&C++相关文章