У меня уже был код, работающий с vs2008, и я пытаюсь перенести его на vs2012. В этом исходном коде я использую указанную функцию bind2nd и использую std :: bind2nd, и все работает отлично. Когда я компилирую тот же код с vs2012, я получаю сообщение о том, что bind2nd не является членом std. Я проверил на MSDN, и он говорит, что является частью «функциональной» библиотеки. Когда я искал его в своем ящике, я обнаружил, что он не там, а в xfunctional, который включается в функционал, когда rc_invoked не определен. Моей первой мыслью было, что я определил rc_invoked, но я доказал, что это не так. Итак, следуя цепочке включений, этот bind2nd должен быть частью std, и мой код не должен давать сбой, но это так. У меня заканчиваются идеи, поэтому любая мысль будет приветствоваться.
ура
У меня нет MS VC ++ 2012, но вы должны убедиться, что, возможно, bind2nd определен в некотором пространстве имен, заключенном в std :: namespace, или существует некоторая манифестная константа, которую необходимо определить, чтобы использовать bind2nd. Хотя это выглядит странно, если вы явно включили заголовок <functional>
в вашей программе.
Других решений пока нет …