| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > boost::bind и специализированный шаблон функции |
| Автор: Zerstroer 15.5.2013, 17:12 | ||||||
| Доброго всем времени суток! Проблема следующая: Использую в одном из методов класса в своей программе boost::bind, который вызывает шаблонную функцию-член класса, имеющую специализацию для определенного типа (string). При использовании компилятора gcc-4.4 c ключиком -std=c++0x - код компилился, при переходе на gcc-4.7 (-std=c++11) код компилироваться перестал. Прилагаю следующий код, который воспроизводит проблемы, с которыми я столкнулся:
Конкретно в данном случае компилятор выдает портянку, начинающуюся на
Я так понял, что это связано с тем, что bind воспринимает шаблоную и специализированную шаблонную функцию как перегруженные. Я так же пробовал вынести определение специализированной шаблонной функции вне тела класса, но нарывался уже на другой косяк:
Я так понял, что это связано с попыткой использования в теле класса специализированной шаблонной функции, объявленной вне класса. Подскажите, как методически правильнее всего решить эту проблему. Если что-то объяснил непонятно - задайте уточняющие вопросы. |
| Автор: Zerstroer 15.5.2013, 17:40 | ||||
| Прошу прощения, пример привел не совсем точный (в нем проблема решается на раз-два). Этот пример точнее:
Добавлено через 13 минут и 7 секунд Почему-то голова у меня включается после того как я уже написал пост и сижу в полной уверенности, что мне помогут. Проблема оказалась тривиальна. Проблема решена:
Спасибо всем не успевшим откликнуться. Прошу прощения за беспокойство. |
| Автор: VSB 19.5.2013, 10:24 |
| Только зачем тебе boost, если теперь есть std::bind из <functional> |
| Автор: Zerstroer 19.5.2013, 12:38 |
| В реальной задаче boost::bind я использовал по внутри функций boost::program_options, поэтому использование boost в контексте конкретно моей задаче обосновано. |