让我们考虑这种模板:
template<typename CharT>
std::basic_string<CharT> refEnvVaraiable(const std::basic_string<CharT> &varaibleName)
{
std::basic_string<CharT> result;
result.reserve(varaibleName.length() + 3);
result = "${" + varaibleName + "}";
return result;
}
计划是要处理任何字符大小的字符串。然而,如果函数参数为std::wstring,则无法编译,因为它没有与const char[]类型的字符串文字连接的运算符。
如何强制字符串文字匹配所需的字符类型? 我必须为表示字面值的常量提供专门化吗(这会产生大量样板代码)?还是有现成的工具可以用? 实时示例
if constexp
。 - NathanOliver