cpp的一些宏定义总结
alternative
#ifndef _ALT
#define _ALT(a, b) using a = b
#endif
#ifndef _ALT2
#define _ALT2(name) \
_ALT(name##p, name *); \
_ALT(name##pc, name *const); \
_ALT(c##name##p, const name *); \
_ALT(c##name##pc, const name *const); \
_ALT(name##r, name &); \
_ALT(c##name##r, const name &)
#endif
#ifndef _ALT3
#define _ALT3(ori, new) \
_ALT(new, ori); \
_ALT2(new)
#endif
用法
_ALT3(string, str);
_ALT2(char);
_ALT2(int);
_ALT3(float, flt);
_ALT3(double, db);
_ALT2(bool);
_ALT是对一些已经存在的类进行合理的简单替换的宏
此宏罗列了以下几种常用的传入参数形式
- T *
- T * const
- const T *
- const T * const
- T &
- const T &
for循环
#define For(name, begin, end) for (int name = begin; name < end; ++name)
#define For0(name, end) For(name, 0, end)
#define Forc(name, data) for (auto name : data)
#define Forcp(name, data) for (auto &name : data)
用法
For(a, 0, 10) => for(int a = 0; a < 10; ++a)
使用这样的 for 宏将会更加容易阅读代码
有什么好的建议请在评论区留言 我会一一回复的~!