有没有办法将左值和右值列表分别转换为具有引用类型和完整类型的元组元组?

阿德里安

这是问题的第 2 部分有没有办法将左值和右值列表分别转换为具有引用类型和完整类型的元组?

我想根据参数列表的左值/右值类型创建一个元组(或对)的元组。这是我到目前为止:

#include <tuple>
using LPCWSTR = wchar_t const*;

namespace detail
{
    template <typename T>
    struct VarVal : std::pair<LPCWSTR, T>
    {
        // Importing the base constructors so I don't have to redefine them
        using std::pair<LPCWSTR, T>::pair;
        VarVal(VarVal const&) = delete; // copy could be made valid, but I don't want it copied around.
        VarVal(VarVal&&) = default; // would rather that no copying/moving be done, but not sure how
    };
}

// lvalue
template <typename T>
detail::VarVal<std::reference_wrapper<T&>> vv(LPCWSTR var, T& val)
{
    return{ var, val };
}

// rvalue
template <typename T>
detail::VarVal<T const> vv(LPCWSTR var, T&& val)
{
    return{ var, val };
}

struct SomeType
{
    int x;
    auto GetLeft()   const { return  1; }
    auto& GetRight()  const { return  x; }
};

auto varvals(SomeType const& object)
{
    return make_tuple(
        vv( L"left",  object.GetLeft() ),
        vv( L"right", object.GetRight() )
    );
}

Demo

这适用于右值,但是当我将它用于左值时,它会说 reference_wrapper<T> requires T to be an object type or a function type.

我错过了什么?

维尔纳·伊拉斯谟

我错过了什么?

template <typename T>
detail::VarVal<std::reference_wrapper<T>> vv(LPCWSTR var, T& val)
{
    return{ var, val };
}

std::reference_wrapper<T>, 不是 std::reference_wrapper<T&>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将具有列表值的Map转换为元组列表

来自分类Dev

有没有办法确定传入的变量是引用类型还是值类型?

来自分类Dev

有没有一种方法可以将元组转换为具有不同项目类型的另一个元组?

来自分类Dev

有没有一种方法可以将元组转换为具有不同项目类型的另一个元组?

来自分类Dev

Python将元组列表转换为具有多个元组值的字典

来自分类Dev

有没有办法将枚举rawValue强制转换为其类型?

来自分类Dev

有没有办法在元组/列表中找到x的第一个值到对应的y?

来自分类Dev

CodeGo.net>有没有办法克隆具有值类型的数组,而无需创建新的引用类型?

来自分类Dev

有没有办法将公式类型的字段的值显示为文本?

来自分类Dev

有没有办法在C#数组中更改元组值?

来自分类Dev

有没有办法在C#数组中更改元组值?

来自分类Dev

有没有办法使用 mvc 发布元组值?

来自分类Dev

有没有办法在ER图中表示元组和表之间的关系?

来自分类Dev

有没有办法引用类型的构造函数?

来自分类Dev

将具有元组和枚举的Dictionary转换为JSON

来自分类Dev

有没有办法将插入的值例如 1234567890 拆分为 12345 和 67890?

来自分类Dev

将键和值转换为具有单个键/值的对象的类型安全方法

来自分类Dev

python中有没有办法使用变量命名列表、字典、字符串、元组或其他数据类型?

来自分类Dev

有没有办法根据第一列的值将pymssql查询转换为json?

来自分类Dev

有没有办法将整数列表转换为单个变量?

来自分类Dev

有没有办法从其完整类型中获取模板类的类型?

来自分类Dev

有没有办法在MySQL中检索数据类型的最小值?

来自分类Dev

有没有办法在Typescript中仅提取某种接口类型的值?

来自分类Dev

Typescript:有没有办法在模板文字类型值中使用变量?

来自分类Dev

有没有办法告诉方法它应该返回什么值类型?

来自分类Dev

有没有办法为特定的HashSet或HashMap覆盖类型的相等和哈希函数?

来自分类Dev

许多 XSD 共享元素和类型 - 有没有办法生成类?(C#)

来自分类Dev

有没有办法从单个列表制作字典,该字典的键和值取自特定索引

来自分类Dev

有没有办法根据重复值将坐标列表分成单独的部分?

Related 相关文章

  1. 1

    将具有列表值的Map转换为元组列表

  2. 2

    有没有办法确定传入的变量是引用类型还是值类型?

  3. 3

    有没有一种方法可以将元组转换为具有不同项目类型的另一个元组?

  4. 4

    有没有一种方法可以将元组转换为具有不同项目类型的另一个元组?

  5. 5

    Python将元组列表转换为具有多个元组值的字典

  6. 6

    有没有办法将枚举rawValue强制转换为其类型?

  7. 7

    有没有办法在元组/列表中找到x的第一个值到对应的y?

  8. 8

    CodeGo.net>有没有办法克隆具有值类型的数组,而无需创建新的引用类型?

  9. 9

    有没有办法将公式类型的字段的值显示为文本?

  10. 10

    有没有办法在C#数组中更改元组值?

  11. 11

    有没有办法在C#数组中更改元组值?

  12. 12

    有没有办法使用 mvc 发布元组值?

  13. 13

    有没有办法在ER图中表示元组和表之间的关系?

  14. 14

    有没有办法引用类型的构造函数?

  15. 15

    将具有元组和枚举的Dictionary转换为JSON

  16. 16

    有没有办法将插入的值例如 1234567890 拆分为 12345 和 67890?

  17. 17

    将键和值转换为具有单个键/值的对象的类型安全方法

  18. 18

    python中有没有办法使用变量命名列表、字典、字符串、元组或其他数据类型?

  19. 19

    有没有办法根据第一列的值将pymssql查询转换为json?

  20. 20

    有没有办法将整数列表转换为单个变量?

  21. 21

    有没有办法从其完整类型中获取模板类的类型?

  22. 22

    有没有办法在MySQL中检索数据类型的最小值?

  23. 23

    有没有办法在Typescript中仅提取某种接口类型的值?

  24. 24

    Typescript:有没有办法在模板文字类型值中使用变量?

  25. 25

    有没有办法告诉方法它应该返回什么值类型?

  26. 26

    有没有办法为特定的HashSet或HashMap覆盖类型的相等和哈希函数?

  27. 27

    许多 XSD 共享元素和类型 - 有没有办法生成类?(C#)

  28. 28

    有没有办法从单个列表制作字典,该字典的键和值取自特定索引

  29. 29

    有没有办法根据重复值将坐标列表分成单独的部分?

热门标签

归档