模拟C++11的新关键字decltype

2023-05-16

只上代码了,尽在不言中吧:

#include <iostream>
#include <vector>
#include <map>
#include <typeinfo>

using namespace std;

template<typename T> 
struct decltype_t 
{ 
 typedef T type; 
}; 

#define DECLTYPE(expr) decltype_t<typeof(expr)>::type 


int main()
{
 std::map<int, int> m; 
 DECLTYPE(m) n;  
 DECLTYPE(m)::iterator it; 

 vector<int> intVtrA;
 vector<DECLTYPE(intVtrA)::value_type> intVtrB;

 cout<<typeid(intVtrA).name()<<endl;
 cout<<typeid(intVtrB).name()<<endl;

 return 1;
}

当然,最新的g++已经支持decltype的上述用法了。

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

模拟C++11的新关键字decltype 的相关文章

随机推荐

  • 在VS2017上配置CMake并生成OpenCV源代码工程的解决方案

    这篇博客是对之前博客 在win10下配置VS2017搭载OpenCV4 0 的补充 xff0c 还没有配置好VS2017 43 OpenCV的小伙伴可以参考一下我之前的博客 一 为什么用CMake xff1f 想要在 Windows 平台下
  • 链表,结构体,文件混合操作

    span class token macro property span class token directive keyword include span span class token string lt stdio h gt sp
  • 设置CentOS不启用图形界面 CentOS只启动后端

    CentOS不要图形界面 xff0c CentOS只开启终端就行 我用的是CentOS8 方法 xff1a vi etc inittab 以前旧的这种直接改 etc inittab方式已经不支持了 vi etc inittab initta
  • yum安装mysql简单配置版

    yum安装mysql简单配置版 yum y install mysql server root 64 bogon vi etc my cnf 在 client 之后添加一行 xff1a default character set 61 ut
  • 第一次使用GitHub

    GitHub可能是当今开源社区最火爆的版本控制和源代码托管平台 xff0c 也不知道这句话是否正确 对GitHub还很陌生 xff0c 不过其确实很热 咱跟着潮流 xff0c 也注册了账号 一 注册 登录GitHub官方网站https gi
  • 彻底关闭Windows更新

    第一级 在控制面板中 xff0c 关闭Windows更新 xff0c 次方法在Windows7之前的系统是可用的 xff0c 从Windows10开始 xff0c Windows更新放在了设置里 第二级 在此电脑 管理 服务和应用程序 wi
  • 端口被占用,简单快捷的解决方法

    步骤 xff1a 1 键盘上按住Win 43 R xff0c 在弹框里输入cmd并点击Enter键 2 根据自己被占用的端口号输入以下命令 xff08 测试 xff1a 被占用的8080端口 xff09 netstat ano findst
  • MySQL的操作系统和硬件优化

    MySQL服务器性能受制于整个系统最薄弱的环节 xff0c 承载它的操作系统和硬件往往是限制因素 磁盘大小 可用内存和CPU资源 网络 xff0c 以及所有连接它们的组件 xff0c 都会限制系统的最终容量 因此 xff0c 需要小心地选择
  • java连接mysql数据库useSSL问题

    背景 Java spring程序 xff0c Java版本 java version 34 1 8 0 301 34 JDBC驱动版本5 1 40 mysql connector java 5 1 40 jar xff0c 连接 proxy
  • 机器阅读理解(MRC)和问答(QA)在信息抽取中的应用

    一 机器阅读理解 xff08 MRC xff09 问答系统 xff08 QA xff09 与信息抽取 最近实体关系抽取任务和命名实体识别任务的SOTA模型排行榜中 xff0c 有很多模型使用到了机器阅读理解 xff08 MRC xff09
  • 【前端面经】Vue-Vue中的 $nextTick 有什么作用?

    Vue js 是一个流行的 JavaScript 框架 xff0c 它提供了许多实用的功能 xff0c 其中之一就是 nextTick 方法 在 Vue js 中 xff0c nextTick 方法可以确保我们在更新 DOM 之后再去执行某
  • archlinux安装virtualbox+WindowsXP虚拟机

    文章目录 概述安装vituralbox安装windows xp虚拟机virtualbox虚拟机配置安装增强工具包 xff08 Guest Additions 设置虚拟机与宿主机共享文件夹 概述 Thinkpad T400笔记本 xff0c
  • WSL2的安装与使用-Windows与Linux双系统的新选择

    文章目录 WSL2的安装与使用 Windows与Linux双系统的新选择1 WSL是什么2 为什么会有WSL3 为要选择WSL2作为开发环境3 1 WSL与WSL2有什么区别3 2 Windows与Linux系统的抉择 4 WSL2的安装4
  • IOCP编程注意事项

    虽说我的昵称是EasyIOCP xff0c 但是用好IOCP还是不容易的 xff0c 有很多要注意的地方 xff0c 长话短说 xff08 不涉及细节 xff09 xff1a 1 每个连接同时最好只有一个待决的WSARecv IOCP不保证
  • cin的错误标记和缓冲区清空

    先看下面的代码 xff1a vector lt int gt intVtr intVtr insert intVtr end istream iterator lt int gt cin istream iterator lt int gt
  • 如何把string的元素逆序呢?

    论坛里见到这个问题 xff1a 如何把string的元素逆序 xff1f 我直接想到的是利用反向迭代器reverse iterator xff1a rbegin 和rend xff1a string str1 34 1234567890 3
  • 配接器ptr_fun的一点增补

    ptr fun的作用是什么 xff1f 就是把函数 xff08 函数的参数最多有两个 xff0c 返回值类型任意 xff0c 包括void xff09 转成函数对象 xff0c 并使该函数对象可配接 当和bind1st或者bind2nd结合
  • 调用closesocket()背后发生的事

    应用层代码想要关闭一个TCP连接可以直接调用closesocket xff0c 但是这个函数的行为并不 单纯 xff0c 只有了解closesocket 背后的故事 xff0c 才能对关闭TCP连接有正确的认识 首先明确一点 xff1a 任
  • 完成端口GetQueuedCompletionStatus()返回错误,怎样获得真正的错误代码

    GetQueuedCompletionStatus 返回错误 xff0c 说明I O失败 此时调用GetLastError 得到的往往是ERROR NETNAME DELETED xff08 64 xff09 xff0c WSAGetLas
  • 模拟C++11的新关键字decltype

    只上代码了 xff0c 尽在不言中吧 xff1a include lt iostream gt include lt vector gt include lt map gt include lt typeinfo gt using name