https://www.timeanddate.com/date/weekday.html oblicza różne fakty dotyczące dnia roku, na przykład: Biorąc pod uwagę dowolną datę, w jaki sposób można obliczyć te liczby ze specyfikacją chronografu C ++ 20
https://www.timeanddate.com/date/weekday.html oblicza różne fakty dotyczące dnia roku, na przykład: Biorąc pod uwagę dowolną datę, w jaki sposób można obliczyć te liczby ze specyfikacją chronografu C ++ 20
Zgodnie z cppreferencją większość zastosowań volatilesłowa kluczowego powinna być przestarzała w C ++ 20. Jaka jest wada volatile? A jakie jest alternatywne rozwiązanie, gdy nie używasz
Czy istnieje sposób sprawdzenia w C ++ 11, czy wyliczenie jest ciągłe ? W pełni uzasadnione jest podawanie wartości wyliczeniowych, które nie są. Czy w C ++ 14, C ++ 17 jest jakaś cecha typu, a może C ++ 20, aby sprawdzić, czy wyliczanie jest ciągłe? Należy tego użyć w static_assert. Oto mały...
C ++ używa tego streamofftypu do reprezentowania przesunięcia w strumieniu (pliku) i jest zdefiniowany w następujący sposób w [stream.types]: using streamoff = implementation-defined ; Typ streamoff jest synonimem jednego z podpisanych podstawowych integralnych typów o wystarczającym...
Mam zabawy z [[no_unique_address]]w c++20. W przykładzie na cppreference mamy pusty typ Emptyi typZ struct Empty {}; // empty class struct Z { char c; [[no_unique_address]] Empty e1, e2; }; Najwyraźniej rozmiar Zmusi być co najmniej 2dlatego, że typy e1i e2są takie same. Jednak naprawdę chcę...
W C ++ istnieje bardzo zgrabna właściwość wyrażeń stałych: ich ocena nie może mieć niezdefiniowanego zachowania ( 7.7.4.7 ): Wyrażenie e jest podstawowym stałym wyrażeniem, chyba że ocena e, zgodnie z regułami maszyny abstrakcyjnej ([intro. Wykonanie]), ocenia jedną z następujących czynności:...
Z preferencji std::chrono::years (since C++20) duration</*signed integer type of at least 17 bits*/, std::ratio<31556952>> Używając libc++, wydaje się, że podkreśleniem std::chrono::yearsjest shortto, że podpisano 16 bitów . std::chrono::years( 30797 ) // yields...
W GCC 10 bawiłem się konstelacją c ++ 20 i napisałem ten kod #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,...
W C ++ 20 std::swapstaje się constexprfunkcją. Wiem, że standardowa biblioteka naprawdę pozostawała w tyle za językiem w oznaczaniu rzeczy constexpr, ale do 2017 r. <algorithm>Była prawie niezrozumiała, podobnie jak wiele innych rzeczy. A jednak - std::swapnie było. Niejasno pamiętam jakąś...
W swoim ostatnim przemówieniu „Pisanie czcionek we współczesnym C ++” Timur Doumler powiedział, że std::bit_castnie można go użyć do wrzucenia a floatdo, unsigned char[4]ponieważ tablice w stylu C nie mogą zostać zwrócone z funkcji. Powinniśmy albo użyć, std::memcpyalbo poczekać, aż C ++ 23 (lub...
Próbuję zrozumieć typy wyrażeń C ++, a im więcej czytam, tym bardziej byłem zdezorientowany, ponieważ uważam, że szkic C ++ jest bardzo trudny do strawienia, dlatego wolę inne zasoby, ale albo one są sobie sprzeczne, albo nie biorą pod uwagę, że brzmienie i definicja między wersjami C ++ mocno się...
Jesteśmy w 2020 roku i nadchodzi C ++ 20 wraz z długo oczekiwaną funkcją modułów C ++. Ale po obejrzeniu kilku rozmów na temat CppCon stwierdzam, że moduły C ++ znajdują się w dziwnym miejscu, szczególnie dla menedżerów pakietów Linuksa (pacman, apt, emerge itp.) Z tego, czego się nauczyłem, są...
Skoro pojęcia są zdefiniowane jako predykaty czasu kompilacji, czy możliwe jest również ponowne wykorzystanie tych predykatów dla algorytmów kompilacji? Czy na przykład można sprawdzić, czy wszystkie typy w krotce są zgodne z koncepcją? O ile widziałem, nie można w żaden sposób przekazać koncepcji...
Rozważ następujące trzy structs: class blub { int i; char c; blub(const blub&) {} }; class blob { char s; blob(const blob&) {} }; struct bla { blub b0; blob b1; }; Na typowych platformach, na których intsą 4 bajty, rozmiary, wyrównania i całkowite wypełnienie 1 są...
Poszukuję sposobu na identyfikację pustych (niewychwyconych) lambd z innych lambd w funkcji szablonu. Obecnie używam C ++ 17, ale jestem również ciekawy odpowiedzi na C ++ 20. Mój kod wygląda następująco: template<typename T> auto func(T lambda) { // The aguments of the lambdas are...
Aż do standardu C ++ 20 C ++, gdy chcieliśmy zdefiniować operatora spoza klasy, który korzysta z niektórych prywatnych członków klasy szablonu, używamy konstrukcji podobnej do tej: template <typename T> class Foo; template <typename T> constexpr bool operator==(T lhs, const...
Koncepcjaequality_comparable_with<T, U> ma zadeklarować, że obiekty typu Ti Umożna porównać sobie równe, a jeśli są, to ma oczekiwaną znaczenie. W porządku. Jednak ta koncepcja również musi common_reference_t<T&, U&>istnieć. Głównym impulsem common_referencei towarzyszącą mu...
Poniższy kod kompiluje się dobrze z clang-trunk w trybie c ++ 17, ale psuje się w trybie c ++ 2a (nadchodzące 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...
To pytanie dotyczy dodania P0593 do najnowszej wersji C ++ 20 . Oto mój przykład: #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...
Wszystkie konstruktory std :: span są zadeklarowane jako constexpr, jednak nie wydaje się, aby którykolwiek z nich działał w kontekście constexpr. Odznaczenie któregokolwiek z poniższych constexpr spowoduje błąd kompilacji. #include <array> #include <span> int main() { constexpr int...