C/C++ - 整数与指针冲突

Too*_*fee 0 c++ int pointers

我一直在研究一个小型的库集合,在我的n维几何向量模板类中,我遇到了两个构造函数之间的问题.构造函数VectorN( t data[n] )与构造函数冲突VectorN( t value ),我得到错误:

More than one instance of constructor ___ matches the argument list".
Run Code Online (Sandbox Code Playgroud)

我理解为什么会发生这种情况,但解决方案使我无法理解.该问题仅在我尝试使用实例化类时发生VectorN(0),但是当value0以外的任何值使用正确的构造函数时.我该怎么做才能解决这个问题?

Pup*_*ppy 5

问题是0是一个有效的空指针常量,它是一个有效的T*(这是t data [n]实际上是在引擎盖下).如果你真的想要采用原始C数组,请使用对数组的引用 - 这是强类型和安全的(r).

此外,原始C阵列是狗屎.std::array适用于何时不想发生段错误的情况.