gpt4 book ai didi

c++ - 引用指针后面的值

转载 作者:行者123 更新时间:2023-11-28 01:51:29 26 4
gpt4 key购买 nike

我想要一个指针后面的值的引用。

class UnicastCall {
protected:
std::fstream *m_stream_attachement_destination_;
...
public:
auto GetStreamAttachementDestination_AsPointer() -> decltype(m_stream_attachement_destination_)
{ return m_stream_attachement_destination_; } //THIS WORKS
auto GetStreamAttachementDestination_AsReference() -> decltype(*m_stream_attachement_destination_) &
{ return *m_stream_attachement_destination_; } //IS THIS CORRECT?
....
};

但是我得到一个错误。

error: use of deleted function 'std::basic_fstream<_CharT, _Traits>::basic_fstream(const std::basic_fstream<_CharT, _Traits>&) [with _CharT = char; _Traits = std::char_traits<char>]'
auto fs = concrete_call->GetStreamAttachementDestination_AsReference();

最佳答案

您正在尝试复制 std::fstream,这是不允许的。

错误不在您的类中,而是在调用站点auto fs = ... 不创建引用但尝试调用复制构造函数; auto 仅替代 std::fstream,而不是 &

试试这个:

auto& fs = concrete_call->GetStreamAttachementDestination_AsReference();

关于c++ - 引用指针后面的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42874404/

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