C++ 错误C2676二进制'<<';:';标准::奥斯特雷姆';不定义此运算符或到预定义运算符可接受的类型的转换
我不理解编译错误C2676 对于下面的代码C++ 错误C2676二进制'<<';:';标准::奥斯特雷姆';不定义此运算符或到预定义运算符可接受的类型的转换,c++,operator-overloading,C++,Operator Overloading,我不理解编译错误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;
#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
\ifndef\uu VEC\u3d\H__
#定义向量3D__
#包括
#包括
命名空间内部
{
/**非常简单的3D矢量/点*/
类Vec3D
{
公众:
浮动mX;
漂浮我的心;
浮动mZ;
///空构造函数
Vec3D(void){}
///从数据构造
Vec3D(float x,float y,float z):mX(x),mY(y),mZ(z){}
内联好友标准::ostream&operator缺少#在顶部包含
修好了。
(哦,C++中编译错误的严重性是什么)…< /P> < P>更改<强> BBVEC3D < /St> > <强> VEC3D >:/P>
BOBVec3D(void) {}
BOBVec3D(float x, float y, float z) : mX(x), mY(y), mZ(z) {}
inline friend std::ostream& operator<< (std::ostream& os, const BOBVec3D& v);
BOBVec3D(void){
BOBVec3D(float x,float y,float z):mX(x),mY(y),mZ(z){
内联好友std::ostream&operator我有这个错误
错误C2676 binary'在切圆注释上,保留了一行中包含两个下划线的所有标识符,以及以下划线和大写字母开头的所有标识符。在您自己的代码中定义此类标识符是UB。将使用命名空间内部;
放在标题中有点违背了创建命名空间的目的。Y您可能想查看一个扩展,例如或,他们犯了这样的小错误几乎不可能。作为一个新手,我发现它非常有用。:-)我安装了Visual Assist,并将试用一个月,但对于这个问题,它没有帮助。(我评论了#include in the top,保存并编译了它,并且:我很抱歉。我实际上自己也使用了Resharper,但是很多人更喜欢使用VAX(出于大型项目的性能原因,尽管我没有遇到任何问题),所以我想我也应该提到它。我用Resharper检查了您的代码,它似乎确实收到了效果。嗯:),你提到了ReSharper,但你链接到了wholetomato.com:)你是想链接到正确的吗?啊,我安装了ReSharper,我对这一点感到困惑。我看到:顶部的红色突出显示显示:“预编译头必须包含在源文件的顶部”,和底部:您认为与您的@notanalien相比,您缺少了什么?很抱歉,我们正在匿名化代码,并且遗漏了这些条目
Vec3D(void) {}
Vec3D((float x, float y, float z) : mX(x), mY(y), mZ(z) {}
inline friend std::ostream& operator<< (std::ostream& os, const Vec3D& v);