C++(14):函数返回类型auto推导

2023-11-06

C++11可以通过结合auto和decltype来动态的声明函数的返回值类型:

#include <iostream>
using namespace std;

template<class T1, class T2>
auto add(T1 t1, T2 t2) -> decltype(t1 + t2)
{
	return t1 + t2;
}

int main(){
	auto a = add(5, 1.66);
	cout<<"a="<<a<<" type is:"<<typeid(a).name()<<endl;
	return 0;
}

运行程序输出:
a=6.66 type is:d

C++14可以通过更为简化的方式,只通过auto来动态的声明函数的返回值类型:

#include <iostream>
using namespace std;

template<class T1, class T2>
auto add(T1 t1, T2 t2)
{
	return t1 + t2;
}

int main(){
	auto a = add(5, 1.66);
	cout<<"a="<<a<<" type is:"<<typeid(a).name()<<endl;
	return 0;
}

运行程序输出:
a=6.66 type is:d

在lamdba函数中可以将参数声明为auto:

#include <iostream>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++(14):函数返回类型auto推导 的相关文章

随机推荐

  • android 全局悬浮窗 可点击_Hi Translate 全局翻译外语 App 上的内容

    英文不太好的朋友可能在使用某些国外 App 在无中文语言支持的时候 也许 Hi Translate 这款 Android 应用可以帮助到你 这款应用不是简单的外语翻译 它可以在你使用满是外语的 App 时 帮助你实现全局页面翻译成中文 Hi
  • IDEA 集成 Sonar 完整流程

    目录 背景 相关的模块及关系 插件安装 SonarQube 启动 SonarQube 创建工程 插件配置 1 打开插件通用配置界面 2 点击 号添加 SonarServer 3 下一步配置认证信息 4 SonarLint 项目配置 mave
  • C++ char*两种初始化为零的方式

    C 中 char 两种初始化为零的的常用方式有以下两种 char data new char 50 char data memset data 0 50
  • ios-消息中心 NSNotificationCenter 的介绍

    1 通知中心概述 通知中心实际上是在程序内部提供了消息广播的一种机制 通知中心不能在进程间进行通信 实际上就是一个二传手 把接收到的消息 根据内部的一个消息转发表 来将消息转发给需要的对象 通知中心是基于观察者模式的 它允许注册 删除观察者
  • C++17入门经典

    C 17入门经典 注意 第1章 基本概念 第2章 基本数据类型 第3章 处理基本数据类型 第4章 决策 第5章 数组和循环 第6章 指针和引用 第7章 操作字符串 第8章 定义函数 第9章 函数模板 第10章 程序文件和预处理指令 第11章
  • python 修饰器 参数_Python修饰器讲解

    转自 http www cnblogs com rollenholt archive 2012 05 02 2479833 html 文章先由stackoverflow上面的一个问题引起吧 如果使用如下的代码 makebold makeit
  • 语义分割--PANet和Understanding Convolution for Semantic Segmentation

    语义分割 PAN Pyramid Attention Network for Semantic Segmentation FCN作为backbone的结构对小型目标预测不佳 论文认为这存在两个挑战 物体因为多尺度的原因 造成难以分类 针对这
  • J2EE规范技术

    原文 http blog csdn net erikxu archive 2004 12 07 208170 aspx J2EE的13种核心技术 1 JDBC Java Data Base Connectivity java数据库连接 是一
  • Unity3D 中使用OnTiggerEnter遇到的不触发问题

    移动GameObject 绑定BoxCollider Istrigger选中 固定GameObject 绑定BoxCollider 刚体属性 IsKinematic选中 此种情况下 移动GameObject中的OnTriggerEnter
  • 数据结构(1)前言

    1 学习数据结构前 需要掌握结构体和指针的使用 需要了解typedef这个关键字 对这部分知识欠缺的可以查看 C语言结构体详解 何为指针 与数组名有什么区别 2 作为一名想成为嵌入式软件工程师的人而言 很多像电气工程 电子信息等专业的人在大
  • Windows11 文件选择打开方式时卡死 解决

    发生的现象 在 打开方式 窗口的地址栏粘贴应用的地址 gt 打开方式界面卡死 完整步骤 左键点击打开epub文件 gt 跳出 寻找一个应用以打开此 epub文件 gt 选择 在电脑上选择应用 gt 弹出 打开方式 窗口 gt 在 打开方式
  • ❤ 15个基于Vue3.0全家桶的优秀开源项目

    15个基于Vue3 0全家桶的优秀开源项目 Vue Admin Better github https github com chuzhixin vue admin better vue admin better 对比其他来源 admin
  • 雨停了,我将雨伞收起

    天空中已有阳光从厚重的云层间隙射向大地 我将手中的雨伞收起 伞面上留存着的雨滴正沿着伞面的褶皱流下打在地上 我望向远方 一辆汽车沿着自己的轨迹行驶 路边小坑中的积水在车轮的驱赶下纷纷跳上灌木丛的绿叶寻找庇护 一阵清脆的自行车铃在身后响起 一
  • Android BaseQuickAdapter万能适配器

    RecycleView万能适配器 一导入 implementation com github CymChad BaseRecyclerViewAdapterHelper 2 9 24 implementation com android s
  • spring-kafka并行度concurrency在应用集群部署(多个节点)正确设置,附上Kafka Manager监控效果

    我们都知道kafka有topic的概念 为了能够更好的支持水平扩容 topic又分了很多的Partition 消费者负责消费Partition中的消息 一个Partition只能被一个消费者消费 但是一个消费者可以消费多个partition
  • zotero与Obsidian联动笔记(二):zotero拖拽highlights的格式修改

    文章目录 zotero拖拽highlights的格式修改 zotero拖拽highlights的格式修改 方法 两种格式的文本 p highlight quotes true citation comment p blockquote hi
  • unity 3D RPG教程(一)

    目录 声明 1 Create Project 2 Build Level 3 PolyBrush 发挥创意构建场景 4 Navigation 智能导航地图烘焙 5 MouseManager 鼠标控制人物移动 声明 本教程学习均来自U3D中文
  • mysql中ddl语句有哪些_什么是 DDL 语言?其中包括哪些语句?

    展开全部 DDL一般指数据定义语32313133353236313431303231363533e4b893e5b19e31333431373937言 数据库模式定义语言DDL Data Definition Language 是用于描述数
  • 华为OD机试 - 跳格子游戏(Java)

    题目描述 地上共有N个格子 你需要跳完地上所有的格子 但是格子间是有强依赖关系的 跳完前一个格子后 后续的格子才会被开启 格子间的依赖关系由多组steps数组给出 steps 0 表示前一个格子 steps 1 表示steps 0 可以开启
  • C++(14):函数返回类型auto推导

    C 11可以通过结合auto和decltype来动态的声明函数的返回值类型 include