gpt4 book ai didi

C++ 可变参数函数模板

转载 作者:太空狗 更新时间:2023-10-29 20:06:32 24 4
gpt4 key购买 nike

可变参数模板的概念让我很困惑,我想让它更复杂一点(嗯,我认为......)。
让我们考虑以下代码:

template <typename T>
class base
{
template <typename... E>
virtual void variadic_method_here(E... args) = 0;
};

和一个实现类:

class derive : public base<some_object> 
{
void variadic_method_here(concrete_args_here);
};

我该怎么做?

最佳答案

我想如果我遇到这个问题,我会使用 CRTP和重载来解决问题。

例如:

#include <iostream>

template <typename Impl>
class base {
public:
template <typename... E>
void foo(E... args) {
Impl::foo_real(args...);
}
};

class derived : public base<derived> {
public:
static void foo_real(double, double) {
std::cout << "Two doubles" << std::endl;
}

static void foo_real(char) {
std::cout << "Char" << std::endl;
}
};

int main() {
derived bar;
bar.foo(1.0,1.0);
bar.foo('h');
}

关于C++ 可变参数函数模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7626599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com