我有一些代码已经在vs2008上工作,我正在尝试将其移植到vs2012。在这个源代码我使用指定的函数bind2nd并使用std :: bind2nd,一切都很完美。当我用vs2012编译相同的代码时,我得到一个错误,说bind2nd不是std的成员。我检查了msdn,它说它是“功能”库的一部分。当我在我的盒子上查找它时,我发现它不在那里但在xfunctional中,当未定义rc_invoked时,它包含在功能中。我的第一个想法是我已经定义了rc_invoked,但事实证明它不是。因此,遵循包含链的这个bind2nd应该是std的一部分,我的代码不应该失败,但它是。我没有想法,所以任何想法都会受到欢迎。
干杯
答案 0 :(得分:2)
我没有MS VC ++ 2012,但你应该检查一下在std :: namespace中包含的某个名称空间中是否定义了bind2nd,或者是否需要定义一些使用bind2nd的清单常量。虽然在程序中明确包含标题<functional>
看起来很奇怪。