分享一个编译期输出TODO,FIXME列表的宏
效果,双击能跳到相应位置:
>------ Build started: Project: TestVS2013, Configuration: Debug Win32 ------
> TestMain.cpp
>
> ====================================
> d:\testprojects\testvs2013\testvs2013\testmain.cpp(20)
> TODO : not implements now !
> ====================================
>
>
> ====================================
> d:\testprojects\testvs2013\testvs2013\testmain.cpp(21)
> HACK : this function is implemented by a hack way!
> ====================================
>
>
> ====================================
> d:\testprojects\testvs2013\testvs2013\testmain.cpp(22)
> FIXME : buggy ! !
> ====================================
>
> TestVS2013.vcxproj -> D:\TestProjects\TestVS2013\Debug\TestVS2013.exe
========== Build: succeeded, failed, up-to-date, skipped ==========
测试代码:
#define TOOLS_STRINGSIZE( L ) #L
#define TOOLS_MAKESTRING_IMP( M, L ) M(L)
#define TOOLS_MAKESTRING(x) TOOLS_MAKESTRING_IMP(TOOLS_STRINGSIZE,x)
#define TOOLS_MESSAGE_LINE "\n====================================\n"
#define TOOLS_MESSAGE_POSITION __FILE__ "(" TOOLS_MAKESTRING(__LINE__) ")\n"
#define WHAT(type,content) message (TOOLS_MESSAGE_LINE TOOLS_MESSAGE_POSITION type content TOOLS_MESSAGE_LINE)
#define TODO(content) WHAT("TODO : ",content)
#define WARNING(content) WHAT("WARNING : ",content)
#define HACK(content) WHAT("HACK : ",content)
#define FIXME(content) WHAT("FIXME : ",content)
#pragma TODO("not implements now !")
#pragma HACK("this function is implemented by a hack way!")
#pragma FIXME("buggy ! !") int main(int argc, char* argv[])
{
return ;
}
分享一个编译期输出TODO,FIXME列表的宏的更多相关文章
- C++17尝鲜:编译期 if 语句
Constexpr If(编译期 if 语句) 以 if constexpr 打头的 if 语句被称为 Constexpr If. Constexpr If 是C++17所引入的新的语法特性.它为C+ ...
- Python决定一个变量时局部的,还是全局的,是在编译期
Python中的变量名是在编译时就解析好的,换句话说,在编译时(也就是在交互控制台输入代码是或者import文件时),Python就已经决定一个变量应该是局部变量,还是全局变量.来看下面的例子: &g ...
- linux下将编译错误输出到一个文本文件
linux下将编译错误输出到一个文本文件 command > filename 把把标准输出重定向到一个新文件中 command > > filename 把把标准输出重定向到一个文 ...
- JVM-程序编译与代码早期(编译期)优化
早期(编译期)优化 一.Javac编译器 1.Javac的源代码与调试 Javac的源代码放在JDK_SRC_HOME/langtools/src/shares/classes/com/sun/too ...
- Javac早期(编译期)
从Sun Javac的代码来看,编译过程大致可以分为3个过程: 解析与填充符号表过程. 插入式注解处理器的注解处理过程. 分析与字节码生成过程. Javac编译动作的入口是com.sun.tools. ...
- c++ 编译期与运行期
分享到 一键分享 QQ空间 新浪微博 百度云收藏 人人网 腾讯微博 百度相册 开心网 腾讯朋友 百度贴吧 豆瓣网 搜狐微博 百度新首页 QQ好友 和讯微博 更多... 百度分享 转自:http://h ...
- 《深入理解Java虚拟机》-----第10章 程序编译与代码优化-早期(编译期)优化
概述 Java语言的“编译期”其实是一段“不确定”的操作过程,因为它可能是指一个前端编译器(其实叫“编译器的前端”更准确一些)把*.java文件转变成*.class文件的过程;也可能是指虚拟机的后端运 ...
- 【转】java注解处理器——在编译期修改语法树
https://blog.csdn.net/a_zhenzhen/article/details/86065063 前言从需求说起由于相关政策,最近公司安全部要求各系统在rpc接口调用的交互过程中把相 ...
- 手淘架构组最新实践 | iOS基于静态库插桩的⼆进制重排启动优化 抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15% 编译期插桩
抖音研发实践:基于二进制文件重排的解决方案 APP启动速度提升超15% 原创 Leo 字节跳动技术团队 2019-08-09 https://mp.weixin.qq.com/s/Drmmx5JtjG ...
随机推荐
- phpmyadmin后台4种拿shell方法 && php爆路径大法
php后台拿shell要知道php的路径,文章下面将讲诉爆php路径的方法!!! 方法一: CREATE TABLE `mysql`.`xss` (`xss1` TEXT NOT NULL ); IN ...
- oracle 10g函数大全--其他函数
DUMP(w[,x[,y[,z]]]) [功能]返回数据类型.字节长度和在内部的存储位置. [参数] w为各种类型的字符串(如字符型.数值型.日期型……) x为返回位置用什么方式表达,可为:8,10, ...
- javascript快速入门18--样式
修改元素外观方式 修改元素外观主要有下面3种方法:修改ID,修改className,修改元素的style属性 修改ID?会造成多么混乱的结果可想而知! 修改className确实是非常好的方法,我们甚 ...
- Flexbox兼容性语法汇总
Flexbox版本 flexbox从第一次出现至今总共有三个语法版本,他们分别是: "display:box;" — 2009年的老版本 "display:flexb ...
- golang中的那些坑之迭代器中的指针使用
今天在编写代码的时候,遇到了一个莫名其妙的错误,debug了半天,发现这是一个非常典型且易犯的错误.记之 示例代码: package main import "fmt" type ...
- RDD编程 下(Spark自学四)
3.5 常见的转化操作和行动操作 3.5.1 基本RDD 1. 针对各个元素的转化操作 两个最常用的转化操作是map()和filter().转化操作map()接受一个函数,把这个函数用于RDD中的每个 ...
- javascript 递归函数调用(recursive funciton call)
所谓的递归函数调用,就是自己调用自己的函数. var timerHandler = null; function a(){ console.log(123); timerHandler = setTi ...
- mssql性能优化
总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对SQL SERVER6.5以前的版本或者ORA ...
- jbpm4(参数设置)
1.processDefinition.getDescription() <process name="task_test_2" xmlns="http://jbp ...
- 程序员之---C语言细节24(段错误、类型提升、sizeof 'A')
主要内容:段错误.类型提升.sizeof 'A' #include <stdio.h> int main() { union test{ char a[10]; int b; }u; i ...