Re: Embarcadero, template member function overload
От: Кодт Россия  
Дата: 07.09.12 13:54
Оценка:
Здравствуйте, roofhasgone, Вы писали:

R>Код ниже не компилируется на Embarcadero C++ Builder XE2.


Может быть, глючит std::is_class?
(Проверь, что даёт is_class<Foo>::value)

Если да, — то решение такое: выдрать, если получится, определение из VC-шной реализации STL и вставить к себе в проект. А чтобы не подрались имена — запихнуть в пространство vcstd::

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

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