Создание временного объекта

Кто-нибудь знает, возможно ли включить любой вид регистрации на любом C ++?
совместимый компилятор (Visual Studios, g ++ и т. д.), чтобы я мог узнать, когда создаются временные объекты?

Например:

Допустим, у меня есть функция f(char x) но я называю это с f(46)

Я буду видеть в журналах —

temporary char created promoting int @ function param f(46) (или как то так)

Я прочитал опции переключения компилятора VS, и кажется, что это не
опция.

Я понимаю, что в новом стандарте есть понятие rvalue reference (&&), который можно использовать для обнаружения большинства временных объектов для семантики перемещения, но это включает добавление нового кода / совместимого компилятора.

Так можно ли это сделать? Или это привилегированное знание компилятора?

4

Решение

Что было бы более полезным, так это встроенные аннотации в IDE (поскольку я предполагаю, что вы хотите оптимизировать, сводя к минимуму некоторые из этих временных значений?). На практике самым простым способом было бы изменить GCC или g ++ и заставить их общаться с плагином Visual Studio или чем-то еще. Они могли бы аннотировать с распределением регистра и все. Вау, это было бы действительно полезно.

За исключением таких усилий, и я не знаю ни одного, лучший способ — просто научиться читать сборку. В Visual Studio вы можете сделать так, чтобы скомпилированная сборка была встроена в источник, что очень полезно.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]