Adr*_*ián 5 c++ function-templates c++11 template-aliases
在 C++ 11 中,我想创建一个具有两个专业化的模板别名,每个专业化解析为不同的函数。
void functionA();
void functionB();
template<typename T = char>
using Loc_snprintf = functionA;
template<>
using Loc_snprintf<wchar_t> = functionB;
Run Code Online (Sandbox Code Playgroud)
所以我可以打电话给eg Loc_snprintf<>(),它决定了functionA()。
显然似乎不可能(编译)。是否有一些最终简单的东西可以模仿它(也许使用类模板)?
在 C++11 中,实际上不可能创建专门化的别名。您必须创建实际的专业化:
template<typename T = char>
void Loc_snprintf()
{
functionA();
}
template<>
void Loc_snprintf<wchar_t>()
{
functionB();
}
Run Code Online (Sandbox Code Playgroud)
在 C++14 中,可以使用变量模板来创建一种别名。
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |