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.

1
¿Cómo se pretende implementar shift_right () en C ++ 20?
En C ++ 20, el <algorithm>encabezado gana dos nuevos algoritmos: shift_left()yshift_right() . Ambos aceptan cualquier LegacyForwardIterator. Para shift_left(), se especifica que "los movimientos se realizan en orden creciente a ipartir de ​0"; para shift_right(), se especifica que "si ForwardItcumple con los requisitos de LegacyBidirectionalIterator, los movimientos se realizan en orden …

1
inconsistencia de clang / gcc en la especialización de clase
Encontré este problema al intentar especializar tuple_size/ tuple_elementpara una clase personalizada en C ++ 17 para el enlace estructurado. El siguiente código se compila en GCC, pero no en clang (ambas versiones troncales, ver el enlace a continuación). #include <type_traits> template<typename T, typename... Ts> using sfinae_t = T; template<typename T, …




1
¿Es nuevo (this) ThisClass () una mala idea?
class FooView final : public Something { ... void refresh() { this->~FooView(); new (this) FooView(); } } Nunca he visto este idioma, y ​​parece que podría ser muy sutil y desordenado, pero en realidad no puedo pensar en un problema con él (mientras FooViewsea ​​definitivo). ¿Es una mala idea?









1
¿Cómo evitar la modificación de los datos de la matriz?
Digamos que tengo una clase que se ve así (esto es solo un ejemplo): class A { double *ptr; public: A() : ptr( new double[100] ) {} A( const A &other ) { other.ptr[7] = 15; } void doNotChangeMyData() const { ptr[43] = 14; } void changeMyData() { ptr[43] = …
9 c++  const 

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.