相关文章推荐
失落的企鹅  ·  python执行脚本方式:subproces ...·  1 年前    · 
微笑的企鹅  ·  Parser ...·  1 年前    · 
睿智的熊猫  ·  探讨JS中获取元素属性8大方法-js获取元素属性·  1 年前    · 
谦逊的沙滩裤  ·  伊利诺伊理工学院在读博士尚玉章:基于后训练量 ...·  2 年前    · 
俊逸的柠檬  ·  速度提升24倍,30分钟完成室内大场景逆渲染 ...·  2 年前    · 
Code  ›  C++ Trick:宏函数与模板类之殇开发者社区
string 模板类
https://cloud.tencent.com/developer/article/1915055
飘逸的水龙头
2 年前
作者头像
果冻虾仁
0 篇文章

C++ Trick:宏函数与模板类之殇

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 后台公论 > C++ Trick:宏函数与模板类之殇

C++ Trick:宏函数与模板类之殇

作者头像
果冻虾仁
发布 于 2021-12-08 13:45:45
430 0
发布 于 2021-12-08 13:45:45
举报

这是一个小trick。虽然不难理解,但是可能经常会忘记,导致代码返工。看这段代码:

#include <iostream>
#include <map>
#include <vector>
#include <string>
using namespace std;
#define DECLARE(type, var) type var
int main() {
    DECLARE(vector<string>, vs);
    DECLARE(map<string, int>, msi);
    return 0;
}

g++和clang都会编译报错。g++错误信息如下:

map_m.cpp:13:34: 错误:宏“DECLARE”传递了 3 个参数,但只需要 2 个
     DECLARE(map<string, int>, msi);
map_m.cpp: 在函数‘int main()’中:
map_m.cpp:13:5: 错误:‘DECLARE’在此作用域中尚未声明
 
推荐文章
失落的企鹅  ·  python执行脚本方式:subprocess run、Popen子进程创建_subprocess.popen subprocess.run-CSDN博客
1 年前
微笑的企鹅  ·  Parser Combinator-腾讯云开发者社区-腾讯云
1 年前
睿智的熊猫  ·  探讨JS中获取元素属性8大方法-js获取元素属性
1 年前
谦逊的沙滩裤  ·  伊利诺伊理工学院在读博士尚玉章:基于后训练量化加速扩散模型生成 |AI新青年讲座 - 智东西
2 年前
俊逸的柠檬  ·  速度提升24倍,30分钟完成室内大场景逆渲染,如视研究成果入选CVPR 2023|图像_新浪科技_新浪网
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号