向std命名空间添加类型是否可以接受.例如,我想要一个TCHAR友好的字符串,以下是可接受的吗?
#include <string>
namespace std
{
typedef basic_string<TCHAR> tstring;
}
Run Code Online (Sandbox Code Playgroud)
或者我应该使用自己的命名空间?
我正在浏览Google C++风格指南,并发现了这个:
"不要在命名空间std中声明任何内容,甚至不要在标准库类的前向声明中声明.在命名空间std中声明实体是未定义的行为,即不可移植.要从标准库声明实体,请包含相应的头文件."
有人可以解释这意味着什么以及为什么这是使用示例代码的未定义行为?