https://www.timeanddate.com/date/weekday.html вычисляет различные факты о дне года, например: Учитывая произвольную дату, как эти числа могут быть вычислены с хронологической спецификацией C ++ 20...
https://www.timeanddate.com/date/weekday.html вычисляет различные факты о дне года, например: Учитывая произвольную дату, как эти числа могут быть вычислены с хронологической спецификацией C ++ 20...
Согласно cppreference , большинство применений этого volatileключевого слова в C ++ 20 не рекомендуется. В чем недостаток volatile? И каково альтернативное решение, когда не используется...
Есть ли способ проверить в C ++ 11, является ли перечисление непрерывным ? Полностью допустимо указывать значения enum, которых нет. Есть ли такая особенность, как черта типа в C ++ 14, C ++ 17 или, может быть, C ++ 20, чтобы проверить, является ли enum непрерывным? Это будет использоваться в...
C ++ использует streamoffтип для представления смещения внутри (файлового) потока и определяется следующим образом в [stream.types]: using streamoff = implementation-defined ; Тип streamoff является синонимом одного из подписанных базовых целочисленных типов достаточного размера, чтобы представить...
Я играю с [[no_unique_address]]в c++20. В примере на cppreference у нас есть пустой тип Emptyи типZ struct Empty {}; // empty class struct Z { char c; [[no_unique_address]] Empty e1, e2; }; Видимо, размер Zдолжен быть хотя бы 2потому, что типы e1и e2одинаковы. Тем не менее, я действительно хочу...
В C ++ есть очень удобное свойство константных выражений: их оценка не может иметь неопределенного поведения ( 7.7.4.7 ): Выражение e является основным константным выражением, если при вычислении e, следуя правилам абстрактной машины ([intro.execution]), не будет выполнено одно из следующих...
Из cppreference std::chrono::years (since C++20) duration</*signed integer type of at least 17 bits*/, std::ratio<31556952>> Используя libc++это кажется , подчеркивающее хранение std::chrono::yearsIS , shortкоторый подписанная 16 бит . std::chrono::years( 30797 ) // yields 32767/01/01...
Я возился с C ++ 20 Conteval в GCC 10 и написал этот код #include <optional> #include <tuple> #include <iostream> template <std::size_t N, typename Predicate, typename Tuple> consteval std::optional<std::size_t> find_if_impl(Predicate&& pred, Tuple&& t)...
В C ++ 20 std::swapстановится constexprфункцией. Я знаю, что стандартная библиотека действительно отстала от языка в маркировке вещей constexpr, но к 2017 году <algorithm>была в значительной степени консекстом, как и куча других вещей. Пока - std::swapнет. Я смутно помню, что был какой-то...
В своем недавнем выступлении « Обработка типов в современном C ++» Тимур Думлер сказал, что std::bit_castего нельзя использовать для floatпреобразования битов в unsigned char[4]массив, потому что массивы в стиле C не могут быть возвращены из функции. Мы должны либо использовать, std::memcpyлибо...
Я пытаюсь понять типы выражений C ++, и чем больше я читаю, тем больше я запутался, поскольку нахожу черновик C ++ очень сложным для восприятия и поэтому предпочитаю другие ресурсы, но они либо противоречат друг другу, либо не учитывают, что формулировка и определение между версиями C ++ сильно...
Мы находимся в 2020 году, и C ++ 20 идет вместе с долгожданной функцией модулей C ++. Но после просмотра нескольких выступлений на CppCon я обнаружил, что модули C ++ находятся в странном месте, особенно для менеджеров пакетов Linux (pacman, apt, emerge и т. Д.) Из того, что я узнал, модули C ++...
Поскольку понятия определены как предикаты времени компиляции, возможно ли также фактически использовать эти предикаты для алгоритмов времени компиляции? Например, можно ли проверить, все ли типы в кортеже соответствуют концепции? Насколько я видел, невозможно передать концепцию какой-либо функции,...
Рассмотрим следующие три structс: class blub { int i; char c; blub(const blub&) {} }; class blob { char s; blob(const blob&) {} }; struct bla { blub b0; blob b1; }; На типовых платформах, где int4 байта, размеры, выравнивания и общее заполнение 1 следующие: struct size alignment padding...
Я ищу способ идентифицировать пустые (без захвата) лямбды из других лямбд в функции шаблона. В настоящее время я использую C ++ 17, но мне тоже интересно узнать ответы на C ++ 20. Мой код выглядит так: template<typename T> auto func(T lambda) { // The aguments of the lambdas are unknown if...
Вплоть до C ++ 20 стандарта C ++, когда мы хотели определить внеклассный оператор, который использует некоторые закрытые члены шаблонного класса, мы использовали конструкцию, подобную этой: template <typename T> class Foo; template <typename T> constexpr bool operator==(T lhs, const...
Концепцияequality_comparable_with<T, U> призвана заявить , что объекты типа Tи Uмогут быть сравнены равны друг другу, и если они есть, то это имеет ожидаемый смысл. Хорошо. Тем не менее, эта концепция также требует common_reference_t<T&, U&>существования....
Следующий код прекрасно компилируется с clang-trunk в режиме c ++ 17, но прерывается в режиме c ++ 2a (предстоящий c ++ 20): // Meta struct describing the result of a comparison struct Meta {}; struct Foo { Meta operator==(const Foo&) {return Meta{};} Meta operator!=(const Foo&) {return...
Этот вопрос относится к добавлению P0593 к последней версии C ++ 20 . Вот мой пример: #include <cstdlib> #include <cstdio> void foo(void *p) { if ( std::getchar() == 'i' ) { *(int *)p = 2; std::printf("%d\n", *(int *)p); } else { *(float *)p = 2; std::printf("%f\n", *(float *)p); } }...
Все конструкторы std :: span объявлены constexpr, однако я не могу заставить их работать в контексте constexpr. Раскомментирование любого из constexpr ниже приведет к ошибке компиляции. #include <array> #include <span> int main() { constexpr int carray[3] = { 0, 1, 2 }; constexpr...