Существуют две функции "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-функции.