![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Zerstroer |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 8.8.2007 Где: Алма-Ата Репутация: нет Всего: 3 |
Доброго всем времени суток!
Проблема следующая: Использую в одном из методов класса в своей программе boost::bind, который вызывает шаблонную функцию-член класса, имеющую специализацию для определенного типа (string). При использовании компилятора gcc-4.4 c ключиком -std=c++0x - код компилился, при переходе на gcc-4.7 (-std=c++11) код компилироваться перестал. Прилагаю следующий код, который воспроизводит проблемы, с которыми я столкнулся:
Конкретно в данном случае компилятор выдает портянку, начинающуюся на
Я так понял, что это связано с тем, что bind воспринимает шаблоную и специализированную шаблонную функцию как перегруженные. Я так же пробовал вынести определение специализированной шаблонной функции вне тела класса, но нарывался уже на другой косяк:
Я так понял, что это связано с попыткой использования в теле класса специализированной шаблонной функции, объявленной вне класса. Подскажите, как методически правильнее всего решить эту проблему. Если что-то объяснил непонятно - задайте уточняющие вопросы. -------------------- In silico |
||||||
|
|||||||
| Zerstroer |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 8.8.2007 Где: Алма-Ата Репутация: нет Всего: 3 |
Прошу прощения, пример привел не совсем точный (в нем проблема решается на раз-два).
Этот пример точнее:
Добавлено через 13 минут и 7 секунд Почему-то голова у меня включается после того как я уже написал пост и сижу в полной уверенности, что мне помогут. Проблема оказалась тривиальна. Проблема решена:
Спасибо всем не успевшим откликнуться. Прошу прощения за беспокойство. Это сообщение отредактировал(а) Zerstroer - 15.5.2013, 17:41 -------------------- In silico |
||||
|
|||||
| VSB |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 23.8.2007 Репутация: 1 Всего: 2 |
Только зачем тебе boost, если теперь есть std::bind из <functional>
|
|||
|
||||
| Zerstroer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 285 Регистрация: 8.8.2007 Где: Алма-Ата Репутация: нет Всего: 3 |
В реальной задаче boost::bind я использовал по внутри функций boost::program_options, поэтому использование boost в контексте конкретно моей задаче обосновано.
-------------------- In silico |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |