• C++可平凡复制的元组


    原文
    标::元组,无法优化性能.可平凡复制可使memcpy复制对象进二进制缓冲.

    <整 I,型名 T>构 元素持有者{
        用 类型=T;T 值;
    };<型名 S,型名...T>构 元组实现;<型名...T,...I>
    构 元组实现<引序<I...>,T...>
        :元素持有者<I,T>...{
      元组实现()=默认;
      元组实现(T&&...t):元素持有者<I,T>{前向<T>(t)}...{}
    };<型名...T>
    构 元组:元组实现<造引序<的大小...(T)>,T...>{
      用 基=元组实现<造引序<的大小...(T)>,T...>;
      用 基::;
    };<整 I,型名 T>
    推导()(常 元素持有者<I,T>&h){ 中 h.; }<整 I,型名 T>推导()(元素持有者<I,T>&h){ 中 h.; }
    //测试代码:
    
    空 测试(){
      元组<,双精>tp(1,2.5);
      双精 t=<1>(tp);
      断定(t==2.5);
    
      静断(是可平凡复制值<元组<,双精>>);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    测试表明元组<整,双精>是可平凡复制的.还可以再加一些辅助方法:

    <型名 T>构 元组大小;<型名...T>构 元组大小<元组<T...>>
        :公 整常<,的大小...(T)>{};<型名 T>
    内联 常式 动 元组大小值=元组大小<退化型<T>>::;<类 F,类 元组,...I>
    内联 常式 推导()应用实现(F&&f,元组&&tp,引序<I...>){
      中 调用(前向<F>(f),<I>(前向<元组>(tp))...);
    }<类 F,类 元组>
    内联 常式 推导()应用(F&&f,元组&&tp){
      中 应用实现(
          前向<F>(f),前向<元组>(tp),
          造引序<元组大小值<移除引用型<元组>>>{});
    }
    //测试代码:
    
    空 测试(){
      元组<,>tp(42,1);
      静断(是可平凡复制值<推导(tp)>);
      静断(元组大小值<推导(tp)>==2);
      动 中=应用([](整 a,整 b){中 a+b;},tp);
      断定(==43);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
  • 相关阅读:
    【Hack The Box】windows练习-- Resolute
    QTday02(常用类、UI界面下的开发、信号与槽)
    2023-mac rz sz 安装
    python返回多个值与赋值多个值
    windows2019下安装mysql 8.0.29及解决服务无法启动
    “三行代码,确实需要耗上一整天!”
    C语言—位运算符
    C#硬件接口开发------一文了解WMI
    Day708.Tomcat和Jetty有哪些不同 -深入拆解 Tomcat & Jetty
    golang中的接口(数据类型)
  • 原文地址:https://blog.csdn.net/fqbqrr/article/details/126566773