临时对象创建

时间:2012-10-22 20:29:39

标签: c++ logging g++ rvalue-reference temporary-objects

有谁知道是否可以在任何C ++上启用任何类型的日志记录 兼容的编译器(Visual Studios,g ++等),以便我可以发现何时创建临时对象?

例如:

假设我有一个函数f(char x),但我将其称为f(46)

我会在日志中看到 -

temporary char created promoting int @ function param f(46)(或类似的东西)

我已经阅读了VS编译器开关选项,看来这不是 一个选项。

我理解在新标准中有一个rvalue reference(&&)概念可用于检测移动语义的大多数临时值,但这涉及添加新的代码/兼容编译器。 / p>

那可以这样做吗?或者这是编译器的特权知识吗?

1 个答案:

答案 0 :(得分:0)

更有用的是IDE中的内联注释(因为我假设您希望通过最小化这些临时值来优化?)。在实践中,最简单的方法是修改GCC或g ++并使它们与Visual Studio插件或其他东西对话。他们可以使用寄存器分配和所有内容进行注释。哇,这实际上真的很有帮助。

除非这样努力,我不知道,最好的方法就是学会阅读大会。在Visual Studio中,您可以使编译的程序集与源代码内联,这非常有用。