Существуют две функции "C":
void fooA(const char*);
void fooW(const wchar_t*);
Затем существует функция шаблона-обертки:
template<typename _TChar>
void foo(const _TChar* str)
{
// call fooA or fooB based on actual type of _TChar
// std::conditional .. ?
// fooA(str);
// fooW(str);
}
Если вызывающий абонент вызывает foo("Abc"), эта функция шаблона должна сделать вызов времени компиляции fooA. Аналогично, foo(L"Abc") должен сделать окончательный вызов fooW.
Как мне это сделать? Я думал об использовании std::conditional, но не смог этого сделать.
Я не могу перегрузить fooA или fooB, так как это C-функции.