【发布时间】:2021-12-16 13:37:55
【问题描述】:
我有接受值并将它们传递给其他函数的函数。没有人会关心它是否是一个右值引用,他们只想读取这个值。我需要使用转发引用还是可以像这样使用const&?
template<class Arg>
void printOne(std::string& str, std::string_view fmt, const Arg& arg) {
if constexpr (std::is_same<char, Arg>::value) {
// ...
} else if constexpr (...) {
// ...
}
}
template<class ...Args>
std::string printFormatted(std::string_view fmt, const Args& ...args) {
std::string str;
(printOne(str, fmt, args), ...);
return str;
}
【问题讨论】:
标签: c++ templates perfect-forwarding forwarding-reference