Size: a a a

2020 July 29

AF

Aidar Fattakhov in supapro.cxx
А проверять нужно что вот эта штука применима к типу а не то что там бул есть
источник

D

Danya in supapro.cxx
Artöm Bakri Al-Sarmini
requires {
   constexpr bool b = T::foo;
}
источник

D

Danya in supapro.cxx
Aidar Fattakhov
Типа констекспр бул ты уже же где-то в компильтайме проверяешь на то он и констекспр наверное
я проверю не бул, а его наличие
источник

LA

Liber Azerate in supapro.cxx
Vlad Serebrennikov
ответ где-то здесь
кажется, компилятор все знает про объекты, созданные на этапе компиляции, поэтому может разрешать виртуальные вызовы через встроенную рефлексию
Спасибо. Я одно не понимаю: так это дешевле вызова виртуальной функции на рантайме или нет?
источник

AF

Aidar Fattakhov in supapro.cxx
Danya
я проверю не бул, а его наличие
Ага
источник

AF

Aidar Fattakhov in supapro.cxx
Но проверка була это проверка наличия тоже
источник

D

Danya in supapro.cxx
Danya
Я пишу концепты
И мне надо проверить что у типа есть static constexpr member variable типа bool
Есть какие-нибудь красивые способы это проверить?
А то пока у меня приходят в голову не самый красивые варианты
1) Написать: concept ... = (T::foo || !T::foo)
2) Написать dummy шаблон
template <typename T, T value>
constexpr bool is_constexpr_expr = true;
...
concept ... = is_constexpr_expr<bool, T::foo>;
поэтому я и предложил первый вариант, но вдруг есть что-то более выразительное
источник

AF

Aidar Fattakhov in supapro.cxx
Ты гдто точно проверяешь значение иначе зачем контекспр
источник

D

Danya in supapro.cxx
Aidar Fattakhov
Ты гдто точно проверяешь значение иначе зачем контекспр
Мне в концепте не нужно значение
источник

AF

Aidar Fattakhov in supapro.cxx
Я веду к тому что у тебя слишком строгий контракт на типы
источник

D

Danya in supapro.cxx
Не я его писал
источник

D

Danya in supapro.cxx
Я его просто имплеменчу
источник

AF

Aidar Fattakhov in supapro.cxx
Тебе нужно не наличие була а применимость каких-то операций
источник

VS

Vlad Serebrennikov in supapro.cxx
Liber Azerate
Спасибо. Я одно не понимаю: так это дешевле вызова виртуальной функции на рантайме или нет?
а есть смысл их сравнивать? этот механизм доступен лишь в constant evaluation
в рантайме ничего не изменилось
источник

AF

Aidar Fattakhov in supapro.cxx
Danya
Я его просто имплеменчу
Хех
источник

AF

Aidar Fattakhov in supapro.cxx
Там надо 2 раза requires наверное
источник

D

Danya in supapro.cxx
Aidar Fattakhov
Тебе нужно не наличие була а применимость каких-то операций
Мне нужна операция взятия этой переменной в компайл тайме)
источник

AF

Aidar Fattakhov in supapro.cxx
Danya
Мне нужна операция взятия этой переменной в компайл тайме)
Не нужна, это бредни сумасшедшего
источник

D

Danya in supapro.cxx
Aidar Fattakhov
Не нужна, это бредни сумасшедшего
Спасибо за ваше мнение, мы вам перезвоним
источник

AF

Aidar Fattakhov in supapro.cxx
Aidar Fattakhov
Там надо 2 раза requires наверное
Понял почему?
источник