利用对象来初始化,C++构造函数为啥没有执行
编译器把这玩意当成函数声明了,比如用clang就会给你个警告:test.cpp:13:8: warning: parentheses were disambiguated as a function declaration T m(T()); ^~~~~test.cpp:13:9: note: add a pair of parentheses to declare a variable T m(T()); ^ ( )然后生成的AST长这样:DeclStmt 0x28ab870 \u0026lt;line:13:5, col:13\u0026gt;`-FunctionDecl 0x28ab7b0 parent 0xc86cc0 \u0026lt;col:5, col:12\u0026gt; col:7 m \u0026#39;class T (class T (*)(void))\u0026#39; `-ParmVarDecl 0x28ab6b0 \u0026lt;col:9, col:11\u0026gt; col:11 \u0026#39;class T (*)(void)\u0026#39;:\u0026#39;class T (*)(void)\u0026#39;可以直观地看出 T m(T()); 被当做声明了一个函数 m ,带一个类型为 T (*)(void) 的参数,返回值为 T 。话说刚刚下的clang玩的,似乎真的比gcc好(逃
■网友
制造一个错误,然后看数据类型,很明显,被当成函数声明了。
【利用对象来初始化,C++构造函数为啥没有执行】
根据错误信息,此处的v是一个返回值为T,参数为(一个返回值为T的函数的指针)但的函数。
推荐阅读
- 河北承德危险废物综合利用处置率达100%
- 黄金时间■黄金时间丨打造海绵城市:节水从利用雨水开始
- |淮阴水政充分利用“双随机”平台 促进执法公平公正
- 司法所|川姜镇司法所盛赛飞利用父母偏心绝情,赶我出家门
- 计算机技术与科学专业怎样利用高中毕业的暑假
- 非计算机专业想要利用课余时间深入自学C++,想要找到比较体面的工作大概需要啥水平
- 可不可能利用网盘的秒传功能使用伪造的MD5(或其他信息)值进行文件分享
- 报告书|徐州诺恩固体废物处置有限公司废包装桶再生利用建设项目环境影响公示
- 一个利用量子纠缠实现超光速通讯的构想,可行吗
- 结婚对象的抉择
