我试图避免外部函数或递归调用,所以我决定测试 lambdas 的功能,但我被卡住了。如果可能的话,我将如何Args...
使用 lambdas 解包?
我试图std::tie
将参数放入元组然后我尝试使用std::get<I>
whereI
是一个非常量整数,但它失败了,因为 get 需要一个constexpr
.
我还尝试了我知道会失败但值得一试的初始化列表。我不想按照维基百科的方式来做。我想这样做:
有什么想法还是我注定要失败?
template<typename... Args>
void fcout(const char* s, Args... args)
{
std::function<void(Args... A)> Unpack = [&](Args... A) {
//Unpack(A...);
};
while (*s)
{
if (*s == '%')
{
if (*(s + 1) == '%')
{
++s;
}
else
{
Unpack(args...);
fcout(s + 1, args...);
return;
}
}
std::cout << *s++;
}
}