Давайте рассмотрим этот тип шаблона:
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[]
.
Как заставить строковый литерал соответствовать требуемому типу символа?Нужно ли предоставлять специализацию для констант, представляющих литералы (это много кода для котельной пластины)?Или есть готовый инструмент для этого?
Живой образец