C++ C+的遵从性错误+;第二生命图书馆

C++ C+的遵从性错误+;第二生命图书馆,c++,linden-scripting-language,C++,Linden Scripting Language,我正试图编译第二人生图书馆的一小部分。具体来说,这是最常见的部分。我用VS9在Windows系统中编译了它。我失败了,编译器说它无法将“\u Ios\u Openmode”识别为“std”的成员 相应代码如下: explicit llifstream(const std::string& _Filename, std::_Ios_Openmode _Mode = in) : std::ifstream(_Filename.c_str(), _Mode) { } 有

我正试图编译第二人生图书馆的一小部分。具体来说,这是最常见的部分。我用VS9在Windows系统中编译了它。我失败了,编译器说它无法将“\u Ios\u Openmode”识别为“std”的成员

相应代码如下:

explicit llifstream(const std::string& _Filename, std::_Ios_Openmode _Mode = in)
    : std::ifstream(_Filename.c_str(), _Mode)
{       
}

有谁能帮我弄清楚问题是什么,我应该更改编译器配置还是其他什么吗?

我认为它应该是
std::ios::openmode

\u ios\u openmode
似乎是某种std-lib实现的内部类型(这种风格在我看来像是纯粹的软件,但我不确定)这不应该在实现之外使用。如果在其他地方使用,它就是一个bug,简单明了


如果可以的话,那么一定要这样做,但是你应该向他们报告一个bug

真的吗?但代码是由林登实验室编写的。我认为它是有效的。修改原始代码是否好?也许它是为了实现标准C++库的不同实现。林登实验室正在编写的代码也不例外;-)我不知道修改代码是否是个好主意,但是如果您想让它工作并且没有其他方法,那么为什么不呢?;-)也许您可以通过将
名称空间std{typedef ios::openmode\u ios\u openmode;}
改为;-)我怀疑这是否更好。你需要先确认它解决了这个问题。是的,虽然sbi没有提到解决方案,但他把它称为bug是很有道理的。@hacker:我没有重复解决方案,因为你已经写过了。我给你的帖子添加了一个链接,这样就更清晰了。哦,既然你是对的,+1<代码>:)
sbi,我刚刚对你的答案发表了评论,因此我的答案中提到了这是一个bug的事实(因为它不太可能被接受),并给出了积分;-)