【问题标题】:How can I change the values of objects in tuple?如何更改元组中对象的值?
【发布时间】:2019-10-18 08:41:21
【问题描述】:

在我的班级中,我有一个元组对象,我想访问其中的对象作为参考。

实际上,我想知道如何编写一个 get 函数来访问我的元组中的对象?

我写了一个函数,它返回元组中对象的左值。我想知道如何将其更改为返回右值?

我有一个名为 GetIndex 的模板,它返回我的元组中对象类型的索引。在我的元组中,我肯定有唯一的类型对象。

//return just lvalue
template <typename T>
T get_module()
{
  return std::get<Private::GetIndex<T, Args...>::value>(types);
}

//compilation error
template <typename T>
T& get_module()
{
  return &std::get<Private::GetIndex<T, Args...>::value>(types);
}
'''


【问题讨论】:

    标签: c++11 stdtuple


    【解决方案1】:

    你可以把 & 放在 T 之后。这就足够了。

      template <typename T>
      T &get_module()
      {
        return std::get<Private::GetIndex<T, Args...>::value>(types);
      }
    

    【讨论】:

    • 也许还添加一个返回T const &amp;const版本
    猜你喜欢
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 2018-07-31
    • 2021-12-12
    • 2019-08-12
    • 1970-01-01
    相关资源
    最近更新 更多