我有以下
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:'settings :: char_t':重新定义;不同的基本类型 请参阅'settings :: char_t'的声明
我的所有代码都使用settings::char_t
和settings::string_t
等。现在我是否需要更改所有代码?或者有一些更容易的出路?
答案 0 :(得分:0)
即使它是全局的,你的typedef也包含在namespace setting
中,你会得到更多关于此的信息。您确定文件没有在项目中被定位两次吗?