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
Definición de C ++ 20 fuera de clase en una clase de plantilla
Hasta el estándar C ++ 20 de C ++, cuando queríamos definir un operador fuera de clase que usara algunos miembros privados de una clase de plantilla, usaríamos una construcción similar a esta: template <typename T> class Foo; template <typename T> constexpr bool operator==(T lhs, const Foo<T>& rhs); template <typename …
12 c++  templates  c++20 



2
¿Por qué una variable enum es un valor r aquí?
Ejemplo: typedef enum Color { RED, GREEN, BLUE } Color; void func(unsigned int& num) { num++; } int main() { Color clr = RED; func(clr); return 0; } Me sale el siguiente error cuando compilo esto: <source>: In function 'int main()': <source>:16:9: error: cannot bind non-const lvalue reference of type …


1
Alias ​​público para tipo no público
Me pregunto si es válido C ++: class Test { struct PrivateInner { PrivateInner(std::string const &str) { std::cout << str << "\n"; } }; public: using PublicInner = PrivateInner; }; //Test::PrivateInner priv("Hello world"); // Ok, private so we can't use that Test::PublicInner publ("Hello World"); // ?, by using public alias …


2
Pasar un concepto a una función
Dado que los conceptos se definen como predicados en tiempo de compilación, ¿también es posible reutilizar estos predicados para algoritmos en tiempo de compilación? Por ejemplo, ¿sería posible verificar si todos los tipos de una tupla se ajustan a un concepto? Por lo que he visto, no es posible pasar …

5
Suma estable eficiente de números ordenados
Tengo una lista bastante larga de números positivos de coma flotante ( std::vector<float>, tamaño ~ 1000). Los números se ordenan en orden decreciente. Si los sumo siguiendo el orden: for (auto v : vec) { sum += v; } Supongo que puedo tener algún problema de estabilidad numérica, ya que …

2
Inicialización del vector de atómica.
Considerar: void foo() { std::vector<std::atomic<int>> foo(10); ... } ¿Son válidos los contenidos de foo ahora? ¿O necesito recorrerlos e inicializarlos explícitamente? He comprobado Godbolt y parece estar bien, sin embargo, el estándar parece estar muy confundido en este punto. El constructor std :: vector dice que inserta instancias insertadas por …
12 c++  vector  atomic 




4
¿Cambio de ruptura en C ++ 20 o regresión en clang-trunk / gcc-trunk cuando se sobrecarga la comparación de igualdad con el valor de retorno no booleano?
El siguiente código se compila bien con clang-trunk en el modo c ++ 17 pero se rompe en el modo c ++ 2a (próximo c ++ 20): // Meta struct describing the result of a comparison struct Meta {}; struct Foo { Meta operator==(const Foo&) {return Meta{};} Meta operator!=(const Foo&) …

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.