Шаблон функции и шаблонная функция — синонимы.
К сожалению decltype не работает с типами, он работает с выражениями, в шаблоне его вывести не получится. Поэтому в данном случае я предпочел завернуть в макрос.
Согласен, Bool — пережитки прошлого. Decay тоже весьма правильное замечание. Спасибо за наводку!
Convert пока нигде не вызывается, в ходе работы пришлось закомментить, пока не восстановил функциональность. Вообще должно работать в более безопасной функции с автоматическим приведением типов Api::invoke.
Boost в таком виде не примет. Один из аспектов философии boost в том, что код должен работать на любой платформе и любом компиляторе. Использование C++11 уже не вписывается.
Почему это не завернуть в шаблонную функцию? На мой взгляд invokerTable<decltype(&Class::func), &Class::func>(«func») выглядит не так лаконично, как METHOD(func).
К сожалению decltype не работает с типами, он работает с выражениями, в шаблоне его вывести не получится. Поэтому в данном случае я предпочел завернуть в макрос.
Второе замечание, как мне кажется, делает код менее читаемым.
Convert пока нигде не вызывается, в ходе работы пришлось закомментить, пока не восстановил функциональность. Вообще должно работать в более безопасной функции с автоматическим приведением типов Api::invoke.
Почему это не завернуть в шаблонную функцию? На мой взгляд invokerTable<decltype(&Class::func), &Class::func>(«func») выглядит не так лаконично, как METHOD(func).