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
Construya excepciones estándar con argumento de puntero nulo y postcondiciones imposibles
Considere el siguiente programa: #include<stdexcept> #include<iostream> int main() { try { throw std::range_error(nullptr); } catch(const std::range_error&) { std::cout << "Caught!\n"; } } GCC y Clang con libstdc ++ llaman std::terminatey cancelan el programa con el mensaje terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct null not valid Clang …


2
¿Puedo devolver una canalización temporal a una operación de rango?
Supongamos que tengo una generate_my_rangeclase que modela a range(en particular, es regular). Entonces es el siguiente código correcto: auto generate_my_range(int some_param) { auto my_transform_op = [](const auto& x){ return do_sth(x); }; return my_custom_rng_gen(some_param) | ranges::views::transform(my_transform_op); } auto cells = generate_my_range(10) | ranges::to<std::vector>; ¿Es my_custom_rng_gen(some_param)tomado por valor por el (primer) operador …
9 c++  range-v3 

2
¿Qué espacios de nombres hay y cuáles son las reglas?
Nota: esta pregunta es sobre name space, no namespace. El estándar C ++ tiene algunas referencias name space, pero no veo la definición de esto. Los estándares dicen que las etiquetas y las macros están en diferentes espacios de nombres. Todas las demás referencias name spaceestán en la sección de …
9 c++  namespaces 


1
Creación de objeto implícito no especificado
Como P0593 se ha aceptado la creación implícita de objetos para la manipulación de objetos de bajo nivel , los objetos ahora se pueden crear implícitamente en C ++ 20. Específicamente, la redacción introducida por la propuesta permite que ciertas operaciones (como std::malloc) creen y comiencen automáticamente la vida útil …







1
Conversión a nulo ** en diferentes compiladores
He estado ejecutando el siguiente código a través de diferentes compiladores: int main() { float **a; void **b; b = a; } Por lo que he podido reunir, novoid ** es un puntero genérico, lo que significa que cualquier conversión desde otro puntero no debe compilarse o al menos lanzar …
9 c++  c  cuda 


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.