是char_t VS中现有的全局typedef?

时间:2012-08-12 12:02:30

标签: c++ visual-studio-2010

我有以下

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_tsettings::string_t等。现在我是否需要更改所有代码?或者有一些更容易的出路?

1 个答案:

答案 0 :(得分:0)

即使它是全局的,你的typedef也包含在namespace setting中,你会得到更多关于此的信息。您确定文件没有在项目中被定位两次吗?