gpt4 book ai didi

c++11 - 完美转发——通过虚函数

转载 作者:行者123 更新时间:2023-12-04 15:27:10 26 4
gpt4 key购买 nike

如何通过虚拟功能启用完美转发?我真的不想像 C++03 那样编写每个重载。

最佳答案

你不能。完美转发只能通过结合模板和右值引用来工作,因为它取决于什么样的真实类型T&&当 T 特化时求值。您不能混合使用模板和虚函数。

但是,您可以通过某种类型删除机制来解决您的问题:

struct base {
virtual void invoke() = 0;
};

template <class T>
struct derived : public base {
derived( T&& yourval ) : m_value(std::forward(yourval)) {}
virtual void invoke() { /* operate on m_value.. */ }

T&& m_value;
};

关于c++11 - 完美转发——通过虚函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4584914/

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