我已经在vs2008上使用了一些代码,我正在尝试将它移植到vs2012。在这个源代码中,我使用指定的函数bind2nd,并使用std::bind2,一切都很完美。当我用vs2012编译相同的代码时,我会看到一个错误,说明bind2nd不是std的成员。我查看了msdn,它说这是“功能性”库的一部分。当我在我的盒子上查找它时,我发现它不在里面,而是在xfunctional中,当没有定义rc_invoked时,它就包含在函数中。我的第一个想法是,我已经定义了rc_invoked,但我证明它不是。因此,遵循包含这个bind2nd的链应该是std的一部分,我的代码不应该失败,但它是失败的。我没有任何想法了,所以任何想法都会受到欢迎。
干杯
发布于 2014-02-17 16:34:45
我没有MS VC++ 2012,但您应该检查是否在std::命名空间中包含的某个名称空间中定义了bind2nd,或者需要定义一些使用bind2nd的显式常量。不过,如果您在程序中显式地包含了头<functional>,这看起来很奇怪。
https://stackoverflow.com/questions/21834325
复制相似问题