char_t VS 中现有的全局类型定义
is char_t an existing global typedef in VS?
我有以下内容
namespace settings{
#if defined(WIN32) && !defined(UNIX)
typedef wchar_t char_t;
#elif defined(UNIX) && !defined(WIN32)
typedef char char_t;
#else
typedef char char_t;
#endif
typedef std::basic_string<char_t> string_t;
typedef std::basic_ostream<char_t> stream_t;
}
我保留了它,以便我可以将整个应用程序聊天更改为 wchar。它在 Linux 中工作,但是当我尝试在 VS 2010 中编译相同的内容时,它给了我
错误 C2371:"设置::char_t":重新定义;不同的基本类型 请参阅"设置::char_t"声明
我所有的代码都使用 settings::char_t
和 settings::string_t
等。现在我需要更改所有代码吗?或者有一些更简单的出路?
即使它是一个全局的,你的 typedef 也包含在 namespace setting
中,你会得到更多关于这一点的信息。您确定该文件不会在项目中被定位两次吗?
相关文章:
- 在具有全局类型def的类中使用成员函数指针
- C++ 未初始化的本地(非全局)int 数组中的元素类型到底是什么?
- C++如何使用虚拟基类型声明全局静态分配的变量
- 在全局命名空间中重载不依赖于用户定义类型的标准定义类型的运算符是否格式正确?
- 在C 中重新解析命名空间内的全局类型
- 为什么我不能使用 constexpr 全局变量来初始化 constexpr 引用类型
- 全局数组在 C 代码中添加到头文件时没有"类型"
- 将大小设置为结构类型全局变量时发生编译器错误
- 运算符重载:简单添加...错误 C2677:二进制"+":未找到采用类型 ___ 的全局运算符(或者不存在可接受的转换)
- 变量类型全局、静态、局部和自动
- C :枚举类型作为模板参数 - 全局范围
- 二进制'+=':未找到采用类型 'Add' C++ 的全局运算符
- 为什么类类型的静态变量和全局变量是危险的
- Lambdas、本地类型和全局命名空间
- 如何在if/else序列中定义未知类型的全局变量
- char_t VS 中现有的全局类型定义
- 错误 C2677:二进制'+=':找不到采用类型 'Movie' 的全局运算符(或者没有可接受的转换)
- std::stringstream 不命名类型(全局)
- 如何为所有类型的整数值类型创建全局类型,并在C++中了解它们的类型
- 是否有将模板用作全局类型而不是参数的方法