Если в классе есть деструктор, объявленный с необходимым пунктом, который оценивается в False, почему класс не тривиальнC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Если в классе есть деструктор, объявленный с необходимым пунктом, который оценивается в False, почему класс не тривиальн

Сообщение Anonymous »

Я играю с c ++ 20 концепциями
https://godbolt.org/z/931xaey45

Код: Выделить всё

#include 

template
class Optional
{
public:
~Optional() requires (!std::is_trivially_destructible_v);

};

#include 
int main()
{
const char* bool_value[] = {"false", "true"};

bool is_trivial = std::is_trivial_v;
bool is_trivial_destructable = std::is_trivially_destructible_v;

std::printf("std::is_trivial_v = %s\n", bool_value[is_trivial]);
std::printf("std::is_trivial_destructable = %s\n", bool_value[is_trivial_destructable]);
}
< /code>
output: < /p>
std::is_trivial_v = false
std::is_trivial_destructable = false
Но, я ожидал, что деструктор не будет создан экземпляр, потому что для этой ситуации требуется (false) генерируется для параметра шаблона int .
Q: Почему ~ Необязательный () требует (false) .>

Подробнее здесь: https://stackoverflow.com/questions/672 ... ates-to-fa
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»