Я не понимаю ошибку компиляции C2676
для приведенного ниже кода
#ifndef __VEC_3D_H__
#define __VEC_3D_H__
#include <vector>
#include <cmath>
namespace Internal
{
/** very simple 3D vector/ point */
class Vec3D
{
public:
float mX;
float mY;
float mZ;
/// null constructor
Vec3D(void) {}
/// construct from data
Vec3D(float x, float y, float z) : mX(x), mY(y), mZ(z) {}
inline friend std::ostream& operator<< (std::ostream& os, const Vec3D& v)
{
os << "(" << v.mX << ", " << v.mY << ", " << v.mZ << ")";
return os;
}
};
}
#endif
Я поместил функционально идентичный код в другой класс, и он компилируется и работает нормально.Что здесь не так?
EDIT1: исправлено BOBVec3d для Vec3D, было опечатка
EDIT2: удалено using namespace Internal;
, действительно, иметь точку в файле заголовка