我有一个包含可变参数模板和辅助函数的程序:
#include <iostream>
#include <string>
using std::cout;
template<typename... Ts>
void fooImpl(char const *cp, Ts... args);
template<typename... Ts>
inline void foo(const std::string &s, Ts... args)
{
fooImpl(s.c_str(), args...);
}
void fooImpl(char const *cp)
{
// do something
}
template<typename T, typename... Ts>
void fooImpl(char const *cp, T val, Ts... args)
{
char special{'@'};
while (*cp)
{
if (*cp == special)
{
// handle val ...
// recurse over remaining args
fooImpl(cp, args...);
return;
}
++cp;
}
}
int main()
{
std::string …Run Code Online (Sandbox Code Playgroud)