Необходим сервис, который смог бы продемонстрировать внутреннюю работу библиотек , компилятора и выделения памяти в реальном времени. Что-то наподобие
https://godbolt.org/ - но этот сервис скорее про устройство компилятора и ассемблер(само-собой). Меня же интересует сервис, где в реальном времени, при выполнении кода можно будет смотреть все внутренние вызовы между библиотеками и встроенными типами.
Приведу более конкретный пример. Мне не понятно, как выделяется память под constexpr объекты класса,т.к не понятно, как вычисляется размер класса (нет, кончено размер класса - это сумма размеров всех его членов - переменных и т.д), но не понятен процесс и последовательность выделения в памяти, в том смысле, что если я буду создавать constexpr объект производного класса, то компилятор перейдет к данному классу - вычислит его размер и получается будет вынужден вычислить и размер базового класса, который не является constexpr?
Но, насколько я знаю, если что-то в constexpr выражении является не constexpr - то все выражение становится не constexpr?
Например:
constexpr int inc (int a)
{
return a + 1;
}
void func()
{
int a = inc (3);
constexpr int b = inc (a); // ошибка: a не является constexpr-выражением, из-за чего возвращаемое значение не имеет спецификатор constexpr
}
(Источник:
https://habr.com/ru/post/228181/)