如何使用带有模板化类成员的尾随返回类型

  发布于 2023-02-11 21:20

我正在尝试实现以下类:

template 
class reverse_adaptor
{
public: // Construction
    reverse_adaptor(Container &container) :
        m_container(container)
    {}

public: // STL container static polymorphism
    auto begin() const -> decltype(m_container.rbegin())
    {
        return m_container.rbegin();
    }

    auto end() const -> decltype(m_container.rend())
    {
        return m_container.rend();
    }

private: // Members
    Container &m_container;
};

我使用尾随返回类型的原因是因为我不知道m_container是否为const,所以我让编译器为我工作.但是,我收到以下编译器错误:

/Users/mark/Blah/Stdx.h:77:40:'stdx :: reverse_adaptor>>中没有名为'm_container'的成员

我认为它可能与模板化类型的多阶段传递有关,因此将其更改为读取decltype(this->m_container.rbegin()),但这也不起作用.

我怎样才能让它发挥作用?

示例 - http://ideone.com/ekVYlH

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有