如何重载<<非类型参数模板别名的运算符?

时间:2016-07-01 13:35:42

标签: c++ templates c++11 operators iostream

我想重载非类型参数模板别名的operator<<

#include <iostream>
#include <bitset>

template<int N>
using centroids = std::vector<typename std::bitset<N>>;

template<int N>
std::ostream & operator<<(std::ostream & o, centroids<N> const & c)
{
    return o;
}

int main()
{
    centroids<16> c;
    std::cout << c << std::endl; // <-- fails as overloaded
    return 0                     //     operator<< is not found
}

编译失败为重载运算符&lt;&lt;找不到。

如何重载&lt;&lt;此非类型参数模板别名的运算符?

0 个答案:

没有答案