我正在尝试将一些ASCII字符转换为另一个字符。但是由于缺乏可变参数模板语法,我无法使用。
template<typename T>
void despecialize(const T& original, T& totransform, const int& charnum)
{
if (static_cast<int>(totransform) == charnum) {
totransform = original;
}
}
template<typename T>
void despecialize(const T& original, T& totransform, const int& charnum, const int& charother...)
{
despecialize(original, totransform, charnum);
despecialize(original, totransform, charother...); //C3546 there are no parameter packs available to expand
}
std::string removePortugueseSpecialLetter(std::string& data)
{
std::string transformed;
for (auto& c : data)
{
despecialize('a', c, 176, 131, 132, 133, 134);
transformed += c;
}
return transformed;
}
正确的语法应该是什么?
为了拥有可变参数模板,您需要可变参数模板参数。看起来像