Как компилятор знает, где в памяти будет квадратный корень, прежде чем программа будет выполнена? Я думал, что адрес будет отличаться каждый раз, когда программа выполняется, но это работает:
constexpr double(*fp)(double) = &sqrt;
cout << fp(5.0);
Это потому, что адрес относится к другому адресу в памяти? Я так не думаю, потому что значение fp
велико: 0x720E1B94.