有谁知道是否可以在任何C ++上启用任何类型的日志记录 兼容的编译器(Visual Studios,g ++等),以便我可以发现何时创建临时对象?
例如:
假设我有一个函数f(char x)
,但我将其称为f(46)
我会在日志中看到 -
temporary char created promoting int @ function param f(46)
(或类似的东西)
我已经阅读了VS编译器开关选项,看来这不是 一个选项。
我理解在新标准中有一个rvalue reference
(&&)概念可用于检测移动语义的大多数临时值,但这涉及添加新的代码/兼容编译器。 / p>
那可以这样做吗?或者这是编译器的特权知识吗?
答案 0 :(得分:0)
更有用的是IDE中的内联注释(因为我假设您希望通过最小化这些临时值来优化?)。在实践中,最简单的方法是修改GCC或g ++并使它们与Visual Studio插件或其他东西对话。他们可以使用寄存器分配和所有内容进行注释。哇,这实际上真的很有帮助。
除非这样努力,我不知道,最好的方法就是学会阅读大会。在Visual Studio中,您可以使编译的程序集与源代码内联,这非常有用。