Информация об изменениях

Сообщение Re[15]: constexpr от 14.01.2023 23:13

Изменено 15.01.2023 0:01 rg45

Re[15]: constexpr
Здравствуйте, T4r4sB, Вы писали:

TB>Твоё утверждение не является полным без упоминания того факта, что const не даёт никакой гарантии. То есть может определять, а может не определять.


Все правильно, может определять, а может не определять, вот поэтому я и написал
Автор: rg45
Дата: 14.01.23
"часто", а не "всегда". В исходном
Автор: Shmj
Дата: 14.01.23
же сообщении про модификатор const говорится, что это "просто const, который времени выполнения", что эквивалентно утрверждению "не может определять константу времени компиляции". Утверждалось, что не может, а я утверждаю, что может. У тебя как с логикой вообще?

R>>Ну допустим, не смог компилятор сложить два числа, дальше что?

TB>А дальше ошибка компиляции.

Как ошибка при компиляции записи "int a[2+3]" опровергает утверждение "модификатор const МОЖЕТ определять константу времени компиляции"?

P.S. На всякий случай, для доказательства того, что модификатор const МОЖЕТ использоваться для определения констант времени компиляции, достаточно какого-нибудь одного примера:

http://coliru.stacked-crooked.com/a/5425252ef5973753

#include <iostream>
#include <utility>

const int id = 42;

using MyInt42Type = std::integral_constant<int, id>;

int main()
{
    std::cout << MyInt42Type::value << std::endl;
}
Re[15]: constexpr
Здравствуйте, T4r4sB, Вы писали:

TB>Твоё утверждение не является полным без упоминания того факта, что const не даёт никакой гарантии. То есть может определять, а может не определять.


Все правильно, может определять, а может не определять, вот поэтому я и написал
Автор: rg45
Дата: 14.01.23
"часто", а не "всегда". В исходном
Автор: Shmj
Дата: 14.01.23
же сообщении про модификатор const говорится, что это "просто const, который времени выполнения", что эквивалентно утрверждению "не может определять константу времени компиляции". Утверждалось, что не может, а я утверждаю, что может. У тебя как с логикой вообще?

R>>Ну допустим, не смог компилятор сложить два числа, дальше что?

TB>А дальше ошибка компиляции.

Как ошибка при компиляции записи "int a[2+3]" опровергает утверждение "модификатор const МОЖЕТ определять константу времени компиляции"?

P.S. На всякий случай, для доказательства того, что модификатор const МОЖЕТ использоваться для определения констант времени компиляции, достаточно какого-нибудь одного примера:

http://coliru.stacked-crooked.com/a/5425252ef5973753

#include <iostream>
#include <utility>

const int id = 42;

using MyInt42Type = std::integral_constant<int, id>;

int main()
{
    std::cout << MyInt42Type::value << std::endl;
}


Может? Может!