phu*_*ehe 7 c++ include-guards
我有这样的C++文件
#ifndef _MOVE_H
#define _MOVE_H
class Move {
int x, y;
public:
Move(int initX = 0, int initY = 0) : x(initX), y(initY) {}
int getX() { return x; }
void setX(int newX) { x = newX; }
int getY() { return y; }
void setY(int newY) { y = newY; }
};
#endif
Run Code Online (Sandbox Code Playgroud)
很让我惊讶,所有的代码#ifndef,并#endif简单地由编译器(我发誓,我没有界定忽视_MOVE_H其他地方),我有失踪定义的各种错误.我在想我做错了什么,但是当我尝试使用另一个键时(比如_MOVE_Ha,一切都恢复正常.这是否_MOVE_H意味着C++中的一些特殊内容?
我正在运行Ubuntu 10.04,GCC 4.4.3,如果这很重要的话.
谢谢,
Sch*_*ron 16
只需在你的机器上运行/ usr/include/c ++中的grep _MOVE_H即可
为了我 :
c++/4.5.0/bits/move.h:#ifndef _MOVE_H
Run Code Online (Sandbox Code Playgroud)
根据经验,不要使用或以前缀为前缀的东西(实际上是任何东西).它保留供内部使用.使用(通常是公司名称,......).___SOMETHING_MOVE_H
我想这是一个用于将移动语义添加到c ++ 0x的新标头.