gpt4 book ai didi

c++ - CRTP : returning a reference to the derived class?

转载 作者:太空宇宙 更新时间:2023-11-04 12:06:08 24 4
gpt4 key购买 nike

我要用什么来替换缺失的行才能让这个 CRTP 解决方案正常工作?

template<class Crtp> class Base
{
public:
inline Crtp& operator=(const Base<Crtp>& rhs)
{
for (unsigned int i = 0; i < const_size; ++i) {
_data[i] = rhs._data[i];
}
return /* SOMETHING HERE BUT WHAT ? */
}

protected:
static const unsigned int const_size = 10;
double _data[const_size];
};

class Derived : public Base<Derived>
{
};

其他问题:您将提供的解决方案在运行时是否有成本(与运算符直接在派生类中实现的解决方案相比)?

非常感谢。

最佳答案

return static_cast<Crtp&>(*this);

这在运行时没有成本(但您可能希望保护 Base 的构造函数)。

关于c++ - CRTP : returning a reference to the derived class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12009257/

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