Re[2]: Embarcadero, template member function overload
От: roofhasgone  
Дата: 10.09.12 09:56
Оценка:
К>Может быть, глючит std::is_class?
К>(Проверь, что даёт is_class<Foo>::value)

Все штуки из std::is_* работают(по крайней мере, по отдельности )

К>Если нет, то есть, компилятор не умеет делать SFINAE, — тогда всё гораздо хуже.


К>Придётся переосмыслить свой код. В частности: почему в одной сигнатуре идёт &obj,func, а в другой — func,arg? Логично было бы, чтоб функция оказывалась всегда на одном и том же месте, например, на первом.

К>Далее, подозреваю, что &obj,func нужно, чтобы сделать замыкание функции на объект. Как насчёт того, чтобы для этих целей использовать std::bind? Уж bind-то не глючит, надеюсь.

SFINAE тоже работает в других местах. Более того, аналогичные перегрузки, но с другими наборами параметров и условиями, тоже работают.
Подобные ошибки возникают только в каких-то "особенных" конкретных случаях.
Ох, и наелся я гвоздей с этими потомками Borland'а... Выйду из положения, отказавшись от перегрузки в пользу двух отдельных функций.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.