Perguntas com a marcação «c++»

C ++ é uma linguagem de programação de uso geral. Foi originalmente projetado como uma extensão para C e tem uma sintaxe semelhante, mas agora é uma linguagem completamente diferente. Use esta tag para perguntas sobre o código (a ser) compilado com um compilador C ++. Use uma tag específica da versão para perguntas relacionadas a uma revisão padrão específica [C ++ 11], [C ++ 14], [C ++ 17] ou [C ++ 20] etc.





2
O armazenamento std :: chrono :: years é realmente pelo menos 17 bits?
Da cppreference std::chrono::years (since C++20) duration</*signed integer type of at least 17 bits*/, std::ratio<31556952>> Usando libc++, parece que o armazenamento de sublinhado de std::chrono::yearsé shortque é assinado 16 bits . std::chrono::years( 30797 ) // yields 32767/01/01 std::chrono::years( 30797 ) + 365d // yields -32768/01/01 apparently UB Existe um erro de …
14 c++  chrono  c++20  libc++ 

3
Classificando um vetor em ordem decrescente dentro de dois intervalos
Digamos que eu tenha um vetor de números inteiros: std::vector<int> indices; for (int i=0; i<15; i++) indices.push_back(i); Então eu classifico em ordem decrescente: 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]); Isso produz o seguinte: 14 13 12 11 10 …

1
Clang não compila código, mas o gcc e o msvc o compilaram
Eu não entendo qual é o problema: no meu código ou no compilador (menos possível). Há um pedaço de código como este: #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 {}; template<typename T> struct TestA<T, …



1
Posso listar a inicialização do std :: vector com o encaminhamento perfeito dos elementos?
Percebi que a initalização de lista agregada do std :: vector realiza a inicialização da cópia quando a movimentação é mais aplicável. Ao mesmo tempo, vários emplace_backs fazem o que eu quero. Eu só poderia encontrar esta solução imperfeita de escrever uma função de modelo init_emplace_vector. É ideal apenas para …



2
Como funciona o arremesso e a captura de tintas?
Com este código: 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; } Nós temos: /tmp$ ./prorgam.out Continuing on our merry …

1
if constexpr - por que a declaração descartada é totalmente verificada?
Eu estava brincando com c ++ 20 consteval no GCC 10 e escrevi este código #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 …

1
Isso é um bug no std :: gcd?
Me deparei com esse comportamento std::gcdque achei inesperado: #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 << ' …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.