c++11中decltype的妙用
来源:互联网 发布:电话手表数据怎么开 编辑:程序博客网 时间:2024/05/27 06:16
下面是《深入理解c++11》中的部分截图
以下是自己的实现,实用几个宏,实现对多用类成员变量的setter和getter,auto与decltype搭配,干活不累
#define GetProperty(Var,VarName) inline auto Get##VarName() const ->decltype(Var) { return Var;}#define SetProperty(Var,VarName) inline void Set##VarName(decltype(Var) _v){ Var = _v;}#define GetSetProperty(Var,VarName)\GetProperty(Var, VarName)\SetProperty(Var, VarName)//decltype(Var) 根据Var实际的类型推导出类型 class Pig{private:int mAge;std::string mName;public:GetSetProperty(mAge, Age); //一定要在声明的变量名下面(有点习惯性的把方法写在上面,变量在下面),不然编译报错,未定义mAgeGetSetProperty(mName, Name);};void testDeclType(){int iarr[10] = { 0 };decltype(iarr) ib; //这个时候ib的定义等价于 int ib[10];两者是一样的,不要认为ib是一个指针了,它是一个正宗的数组。printf("--- sizeof ib:%d\n",sizeof(ib)); //40Pig p;p.SetAge(123);p.SetName("uuu");printf("--- pig age:%d, name:%s\n",p.GetAge(), p.GetName().c_str());/*--- sizeof ib:40--- pig age:123, name:uuu*/}
0 0
- c++11中decltype的妙用
- C++11中decltype的使用
- C/C++中0的两个妙用
- C语言中字符串常量的妙用
- C/C++中宏的妙用
- c语言中assert函数的妙用
- C语言中函数的妙用
- 单片机C语言中define的妙用
- C语言11中的auto和decltype
- 10030---springmvc中<c:set> / <c:remove>标签的妙用
- 指针的妙用(C++)
- c和java中sleep和yield的妙用
- c语言中长度为0的数组妙用
- C 和 Java 中sleep和yield的妙用
- C/C++中do...while(0)的妙用
- C语言中do...while(0)的妙用
- C语言中do...while(0)的妙用
- C语言中do...while(0)的妙用-避免goto
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- test dword ptr [eax],eax ; probe page.
- NoteOc-05-属性构造函数
- iOS 导航控制器 UINavigationController
- Java日志学习五:JDK Logger源码
- c++11中decltype的妙用
- C#小结(一)
- windows下搭建nginx+php+redis环境
- (六)swift 在Main.storyboard中的快捷键
- Android开发:常见布局、Logcat和储存方式
- FZU Fire Game
- c#之再战委托事件多线程2_委托和事件结合降低模块低耦合
- Java创建柱状图及饼状图
- 传统线程互斥技术Synchronized01