Preguntas etiquetadas con c++

C ++ es un lenguaje de programación de propósito general. Originalmente fue diseñado como una extensión de C y tiene una sintaxis similar, pero ahora es un lenguaje completamente diferente. Use esta etiqueta para preguntas sobre el código (que se compilará) con un compilador de C ++. Utilice una etiqueta específica de la versión para preguntas relacionadas con una revisión estándar específica [C ++ 11], [C ++ 14], [C ++ 17] o [C ++ 20], etc.

2
¿El almacenamiento std :: chrono :: years es realmente de al menos 17 bits?
De cppreference std::chrono::years (since C++20) duration</*signed integer type of at least 17 bits*/, std::ratio<31556952>> Usando libc++, parece que el almacenamiento subrayado de std::chrono::yearsis shortestá firmado 16 bits . std::chrono::years( 30797 ) // yields 32767/01/01 std::chrono::years( 30797 ) + 365d // yields -32768/01/01 apparently UB ¿Hay un error tipográfico en cppreference …
14 c++  chrono  c++20  libc++ 

3
Ordenar un vector en orden descendente dentro de dos rangos
Digamos que tengo un vector de enteros: std::vector<int> indices; for (int i=0; i<15; i++) indices.push_back(i); Luego lo ordeno en orden descendente: 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]); Esto produce lo siguiente: 14 13 12 11 10 9 8 …

1
Clang no compila código, pero gcc y msvc lo compilaron
No entiendo cuál es el problema: ya sea en mi código o en el compilador (menos posible). Hay un 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, …







2
¿Cómo funciona lanzar y atrapar objetos?
Con 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; } Tenemos: /tmp$ ./prorgam.out Continuing on our merry way …

1
¿Es esto un error en std :: gcd?
Me he encontrado con este comportamiento std::gcdque encontré 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 << …

1
if constexpr: ¿por qué se comprueba completamente la declaración descartada?
Estaba jugando con c ++ 20 consteval en GCC 10 y escribí 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 std::nullopt; …

2
¿Por qué no podemos crear objetos trivialmente construibles usando malloc si el constructor trivial predeterminado no realiza ninguna acción?
Tengo dificultades para comprender el siguiente párrafo citado de cppreference sobre el constructor trivial predeterminado. He buscado stackoverflow pero aún no obtuve una respuesta clara. Así que por favor ayuda. Un constructor predeterminado trivial es un constructor que no realiza ninguna acción. Todos los tipos de datos compatibles con el …


2
¿Los constructores de copiar y mover son amigos automáticos?
Podemos acceder a variables privadas de otra clase cuando definimos copiar o mover constructores. ¿C ++ los hace el uno friendal otro automáticamente? Por ejemplo: my_str::my_str(my_str&& m) { size_ = m.size_; //accessing private variable another my_str class buff_ = m.buff_; //accessing private variable another my_str class m.buff_ = nullptr; m.size_ …
14 c++  friend-class 

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.