Рассмотрим этот код: struct foo
{
static constexpr int value = 42;
};
void bar(const int* value) { std::cout << *value; }
int main() { bar(&foo::value); }
Это компилируется нормально и без
Я могу написать constexpr функцию, которая выполняет тип вычет, но не использует объект, переданный ему: template <int N>
struct Foo
{
static const int value = N;
};
template <typename T>
c
Примечание: этот Q & А не о Mersenne twister, но Mersenne numbers. Я хочу, чтобы вычислить, во время компиляции, массив размера N, содержащих простых чисел Мерсенна (2 п - 1) для п в [0, N - 1]. templ
Как компилятор знает, где в памяти будет квадратный корень, прежде чем программа будет выполнена? Я думал, что адрес будет отличаться каждый раз, когда программа выполняется, но это работает: constexp