Questions marquées «c++»

C ++ est un langage de programmation à usage général. Il a été initialement conçu comme une extension de C et a une syntaxe similaire, mais c'est maintenant un langage complètement différent. Utilisez cette balise pour les questions sur le code (à compiler) avec un compilateur C ++. Utilisez une balise spécifique à la version pour les questions liées à une révision standard spécifique [C ++ 11], [C ++ 14], [C ++ 17] ou [C ++ 20], etc.


2
Le stockage std :: chrono :: years est-il vraiment au moins 17 bits?
De cppreference std::chrono::years (since C++20) duration</*signed integer type of at least 17 bits*/, std::ratio<31556952>> L' utilisation libc++, il semble que le stockage sous - jacent de std::chrono::yearsest -ce shortqui est signé 16 bits . std::chrono::years( 30797 ) // yields 32767/01/01 std::chrono::years( 30797 ) + 365d // yields -32768/01/01 apparently UB …
14 c++  chrono  c++20  libc++ 


3
Tri d'un vecteur par ordre décroissant dans deux plages
Disons que j'ai un vecteur d'entiers: std::vector<int> indices; for (int i=0; i<15; i++) indices.push_back(i); Ensuite, je le trie par ordre décroissant: sort(indices.begin(), indices.end(), [](int first, int second) -> bool{return indices[first] > indices[second];}) for (int i=0; i<15; i++) printf("%i\n", indices[i]); Cela produit les éléments suivants: 14 13 12 11 10 9 …

1
Clang ne compile pas de code mais gcc et msvc l'ont compilé
Je ne comprends pas quel est le problème: soit dans mon code, soit dans le compilateur (moins possible). Il y a un morceau de code comme celui-ci: #include <iostream> #include <type_traits> #include <set> template<typename T, typename = void> struct TestA: std::false_type {}; template<typename T> struct TestA<T, std::void_t<typename T::reverse_iterator>> : std::true_type …



1
Puis-je list-initialiser std :: vector avec une transmission parfaite des éléments?
J'ai remarqué que globale liste initalization de std :: vecteur effectue l' initialisation de copie lors de déplacement est plus applicable. En même temps, plusieurs emplace_backs font ce que je veux. Je ne pouvais que trouver cette solution imparfaite d'écrire une fonction de modèle init_emplace_vector. Cependant, il n'est optimal que …




1
si constexpr - pourquoi l'instruction rejetée est-elle entièrement vérifiée?
Je déconnais avec c ++ 20 consteval dans GCC 10 et écrivais ce code #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) noexcept { constexpr std::size_t I = std::tuple_size_v<std::decay_t<decltype(t)>> - N; if constexpr (N == 0u) { return std::nullopt; …

2
Comment fonctionnent les lancers et les saisies?
Avec ce code: int main() { try { throw -1; } catch (int& x) { std::cerr << "We caught an int exception with value: " << x << std::endl; } std::cout << "Continuing on our merry way." << std::endl; return 0; } On a: /tmp$ ./prorgam.out Continuing on our merry …

1
Est-ce un bogue dans std :: gcd?
Je suis tombé sur ce comportement std::gcdque j'ai trouvé inattendu: #include <iostream> #include <numeric> int main() { int a = -120; unsigned b = 10; //both a and b are representable in type C using C = std::common_type<decltype(a), decltype(b)>::type; C ca = std::abs(a); C cb = b; std::cout << a …


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.