以下代码可以使用,但我希望避免警告:
当编译时使用警告: 'fitness::vect_' 应该在成员初始化列表中初始化 [-Weffc++]
g++ -Weffc++
开关。#include <array>
template<class T, unsigned N>
class fitness
{
public:
explicit fitness(T v)
{
static_assert(N, "fitness zero length");
vect_.fill(v);
}
private:
std::array<T, N> vect_;
};
int main()
{
fitness<double, 4> f(-1000.0);
return 0;
}
我应该忽略这个警告吗?有没有一种方法可以在构造函数初始化列表中填充 vect_
(而不改变其类型)?
vect_()
或vect_{}
。 - juanchopanza