【问题标题】:How to avoid decay of std::reference_wrapper to plain references in std::make_tuple?如何避免 std::reference_wrapper 衰减为 std::make_tuple 中的普通引用?
【发布时间】:2012-10-26 12:40:24
【问题描述】:

我正在尝试正确地为对象生成一个 std::reference_wrappers 元组。通过使用shown here 技术,我设法将std::ref 函数映射到所有原始元组上,但是,根据this(它确实发生了),std::reference_wrappers decay 到普通refs (&) 在这个过程中。有没有办法避免这种情况?我有一整套接受std::reference_wrappers 元组的函数,我不想将它们更改为使用引用。

谢谢

【问题讨论】:

    标签: c++ c++11 tuples reference-wrapper


    【解决方案1】:

    这样做就够了

    tuple<reference_wrapper<T>...> = /* my tuple of references */;
    

    【讨论】:

      【解决方案2】:

      如果可以更改包装器类型,使用boost::reference_wrapper / boost::ref 可能是解决问题的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-16
        • 1970-01-01
        • 2016-03-31
        • 2020-02-09
        • 1970-01-01
        • 2015-12-16
        • 1970-01-01
        • 2017-07-31
        相关资源
        最近更新 更多