Как я могу увидеть все функции класса?

В основном я хочу видеть сгенерированные компилятором функции (конструктор по умолчанию, конструктор копирования, оператор присваивания, перемещение-присваивание, деструктор).
Просто хочу посмотреть, какие функции компилятор сгенерировал для меня.

Я предполагал, что смогу увидеть это в таблице символов, но у меня возникли проблемы с поиском их в таблице символов с искажением имени. Я вижу другие функции, которые я определил, но я не знаю, как я могу найти конструкторы и т. Д.

Есть ли лучший способ увидеть, какие функции связаны с классом?

1

Решение

Есть проблема с вашей идеей:

Компилятор будет безоговорочно объявлять специальные функции, когда это разрешено.
Но это будет только неявно определить их, если они используются ODR.

Кроме того, это использование могло быть встроено, поэтому, возможно, не найден символ.

Таким образом, единственный отказоустойчивый способ выяснить, какие функции будет генерировать компилятор по требованию, — это попытаться использовать их.
Хотя достаточно просто знать правила и проверять их вручную, они достаточно просты.

2

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


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