Size: a a a

2021 February 23

CD

Constantine Drozdov in pro.cxx
Ещё придётся разбираться с котлами в аду, которые написаны джунами на C++03 под MSVC 6.0  с использованием лучших agile методик разработки и потом были любезно переделаны под компиляцию новеньким gcc
источник

DK

David Kravets in pro.cxx
Constantine Drozdov
Ещё придётся разбираться с котлами в аду, которые написаны джунами на C++03 под MSVC 6.0  с использованием лучших agile методик разработки и потом были любезно переделаны под компиляцию новеньким gcc
Я думал Ад это ассемблер
источник

CD

Constantine Drozdov in pro.cxx
David Kravets
Я думал Ад это ассемблер
Вы просто не писали под MSVC 6.0
источник

MK

Mikhail Kalugin in pro.cxx
ссс
У тебя так много чатов и c#, и c++, и даже rust)
Хм... Чувствую себя каким-то не правильным. C++ и Scala в чатах...
источник

MK

Mikhail Kalugin in pro.cxx
Добавить что ли Rust и Haskell...
источник

DK

David Kravets in pro.cxx
Mikhail Kalugin
Добавить что ли Rust и Haskell...
А где чаты искать ?
источник

ID

In Dev in pro.cxx
David Kravets
А где чаты искать ?
источник

AP

Antony Polukhin in pro.cxx
Constantine Drozdov
Вы просто не писали под MSVC 6.0
Мммм... ч`удные времена эмуляции partial template specialization через вложенную шаблонную структуру
источник

W

Wild_Wind in pro.cxx
А как правильно указывать спецификаторы и квалификаторы для концептов?
Т.е. хочется различать два концепта:
template <class T>
concept constexpr_noexcept_some = requires(T t) {
   { constexpr t.test() const noexcept } // это не работает
   ->std::same_as<bool>;
};
template <class T>
concept runtime_excepted_mutable_some = requires(T t) {
   { t.test() }
   ->std::same_as<bool>;
};

Или концепты так не умеют?
источник

AD

Andrey Davydov in pro.cxx
Wild_Wind
А как правильно указывать спецификаторы и квалификаторы для концептов?
Т.е. хочется различать два концепта:
template <class T>
concept constexpr_noexcept_some = requires(T t) {
   { constexpr t.test() const noexcept } // это не работает
   ->std::same_as<bool>;
};
template <class T>
concept runtime_excepted_mutable_some = requires(T t) {
   { t.test() }
   ->std::same_as<bool>;
};

Или концепты так не умеют?
requires(T const t) {
 { t.test() } noexcept -> std::same_as<bool>;
}
источник

AD

Andrey Davydov in pro.cxx
константность и noexcept так, для constexpr встроенного механизма нет
источник

AP

Antony Polukhin in pro.cxx
Andrey Davydov
константность и noexcept так, для constexpr встроенного механизма нет
Можно попробовать передать результат в consteval функцию
источник

AP

Antony Polukhin in pro.cxx
* я не пробовал
источник

W

Wild_Wind in pro.cxx
Antony Polukhin
Можно попробовать передать результат в consteval функцию
Щас попробуем. Вроде consteval уже работает в gcc-10.2 и clang-11.0.1
источник

W

Wild_Wind in pro.cxx
Wild_Wind
Щас попробуем. Вроде consteval уже работает в gcc-10.2 и clang-11.0.1
Теперь GCC собирает, и ведет себя ожидаемо, а ошибку clang я не понимаю.
https://godbolt.org/z/5Tds6z
источник

AP

Antony Polukhin in pro.cxx
А попробуйте test_some(value.test())
источник

AP

Antony Polukhin in pro.cxx
* с планшета godbolt не работает :(
источник

AP

Antony Polukhin in pro.cxx
** точнее печатать не даёт
источник

W

Wild_Wind in pro.cxx
Antony Polukhin
А попробуйте test_some(value.test())
Та же ошибка.
note: because substituted constraint expression is ill-formed: call to consteval function 'test_some<bool>' is not a constant expression
   {test_some(value.test())};
источник

AD

Andrey Davydov in pro.cxx
Я не знаю, что для вас ожидаемо, но разница у gcc и clang-а в том, как относится к параметру requires expression-а (value в вашем примере). GCC считает его core constant expression, а clang — нет, и я склонен согласиться с clang-ом.
источник