zoukankan      html  css  js  c++  java
  • 运行期以索引获取tuple元素-C++17

    //运行期以索引获取tuple元素-C++17
    //需支持C++17及以上标准的编译器,VS2017 15.5.x、CodeBlocks 16.01 gcc 7.2
    //参见:http://purecpp.org/?p=1581
    
    #include <iostream>
    #include <tuple>
    using namespace std;
    
    template <size_t Idx, typename T>
    void visit(T& tup, size_t i)
    {
        if (i == Idx)
            cout << get<Idx>(tup) << endl;
    }
    
    //template <typename Tuple, size_t... Idx>
    //void visit(size_t i, Tuple& tp, index_sequence<Idx...>)
    //{
    //    (visit<Idx>(tp, i), ...);
    //}
    
    template <class Tuple, size_t...Idx>
    void visit1(size_t i, Tuple& tp, index_sequence<Idx...>)
    {
        ((i == Idx && (visit<Idx>(tp, i), false)), ...);
    }
    
    template <typename Tuple>
    void visit_help(size_t i, Tuple& tp)
    {
        //visit(i, tp, make_index_sequence<tuple_size<Tuple>::value>{});
        visit1(i, tp, make_index_sequence<tuple_size<Tuple>::value>{});
    }
    
    int main()
    {
        auto tp = make_tuple(45, "The test", true);
        int i = 1;
        visit_help(i, tp);  //The test
    
        return 0;
    }
  • 相关阅读:
    COPY SAP 标准gui状态
    销售类型转换
    SAP数据表相关
    T_CODE I18N
    SAP-Function
    MLGBZ
    爷爷的烟斗
    使用 Composer 查看 FastAdmin 项目 组件的版本
    FastAdmin 后台前端后端组件说明(待续)
    FastAdmin 在 Nginx 中的配置
  • 原文地址:https://www.cnblogs.com/ybmj/p/8095144.html
Copyright © 2011-2022 走看看