在类模板

时间:2018-04-15 20:04:29

标签: c++ c++11 scope type-alias

我想要制作类模板,唯一的模板参数n将用于制作std::array<double,n>数据成员。但是,当我使用类型别名时,这很棘手。当您尝试写下类方法的返回类型时,似乎无法识别类型别名。对此最好的解决方法是什么?

#include <array>
#include <iostream>

template<size_t n> class C {

    using arr = std::array<double,n>;

public:
    C();
    arr func(); 
};


template<size_t n> 
C<n>::C() {}


template<size_t n> 
arr C<n>::func() { // <--------------------right here
    arr temp;
    for(size_t i = 0; i < n; ++i)
        temp[i] = i;
    return temp; 
}


int main(int argc, char **argv) {
    C<10> obj; 
}

0 个答案:

没有答案