C++ 错误C2512:&x27;std::basic_ostream<_元素,_Traits>';:没有合适的默认构造函数仅适用于Visual Studio

C++ 错误C2512:&x27;std::basic_ostream<_元素,_Traits>';:没有合适的默认构造函数仅适用于Visual Studio,c++,visual-studio-2010,visual-c++,ostream,C++,Visual Studio 2010,Visual C++,Ostream,我问这个问题是因为我有点无助:这个错误只在VisualStudio中发生,GCC编译它时没有错误甚至警告。因为这是一些可移植的代码,所以我正在寻找一种可以同时使用这两种编译器的解决方案(最好是不依赖于平台的ifdefs) 错误C2512:'std::basic_ostream':没有合适的 默认构造函数可用 在构造定义为的MyObject类型的对象时发生 class MyObject : public Socket, public std::ostream VS在此需要哪些特殊的ostr

我问这个问题是因为我有点无助:这个错误只在VisualStudio中发生,GCC编译它时没有错误甚至警告。因为这是一些可移植的代码,所以我正在寻找一种可以同时使用这两种编译器的解决方案(最好是不依赖于平台的
ifdefs

错误C2512:'std::basic_ostream':没有合适的 默认构造函数可用

在构造定义为的MyObject类型的对象时发生

   class MyObject : public Socket, public std::ostream

VS在此需要哪些特殊的
ostream
参数?

std::ostream
std::basic\u ostream
的类型别名。
std::basic_ostream
的构造函数需要一个指向与输出流关联的流缓冲区的指针。你必须提供一个

建造商的签名如下:

 explicit basic_ostream( std::basic_streambuf<CharT, Traits>* sb );

另请参见以获取参考。

std::ostream
std::basic\u ostream
的类型别名。
std::basic_ostream
的构造函数需要一个指向与输出流关联的流缓冲区的指针。你必须提供一个

建造商的签名如下:

 explicit basic_ostream( std::basic_streambuf<CharT, Traits>* sb );

另请参阅以获取参考。

答案很好。我正在从VS2008(及更高版本)迁移到VS2012,这个问题出现了。@EJA:很高兴它帮助了你:)回答得很好。我正在从VS2008(及更高版本)迁移到VS2012这就出现了。@EJA:很高兴它帮助了你:)即使我在visual studio 2013中也遇到了同样的问题错误1错误C2512:“std::basic_ostream”:没有合适的默认构造函数可用错误请任何人帮我解决这个问题。即使我在visual studio 2013中也遇到同样的问题错误1错误C2512:“std::basic_ostream”:没有合适的默认构造函数可用错误,请任何人都可以帮助我在这方面。