3

我有以下

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。现在我需要更改我的所有代码吗?还是有一些更简单的出路?

4

1 回答 1

0

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

于 2012-08-12T13:45:58.390 回答