将类型添加到 std 命名空间

2022-01-07 00:00:00 namespaces c++ stl

std 命名空间添加类型是否可以接受.比如我想要一个TCHAR友好的字符串,那么下面的可以接受吗?

Is it acceptable to add types to the std namespace. For example, I want a TCHAR-friendly string, so is the following acceptable?

#include <string>

namespace std
{
    typedef basic_string<TCHAR> tstring;
}

还是应该使用自己的命名空间?

Or should I use my own namespace?

推荐答案

不...命名空间的一部分目的是防止升级时的名称冲突.

No ... part of the point of a namespace is to prevent name collisions on upgrade.

如果您向 std 命名空间添加内容,那么如果库的下一个版本决定添加具有相同名称的内容,您的代码可能会中断.

If you add things to the std namespace, then your code might break with the next release of the library if they decide to add something with the same name.

相关文章