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
Puede abarcar ser constexpr?
Todos los constructores de std :: span se declaran constexpr, sin embargo, parece que no puedo hacer que ninguno de ellos funcione en un contexto constexpr. Descomentar cualquiera de los constexpr a continuación dará como resultado un error de compilación. #include <array> #include <span> int main() { constexpr int carray[3] …
11 c++  constexpr  c++20 



5
C ++ asignación ternaria de lambda
¿Alguna idea de por qué el siguiente fragmento no se compila? Se queja con un error "error: operandos a?: Tener diferentes tipos" auto lambda1 = [&](T& arg) { ... }; auto lambda2 = [&](T& arg) { ... }; auto lambda = condition ? lambda1 : lambda2;

6
Rango inocente basado en bucle que no funciona
Lo siguiente no compila: #include <iostream> int main() { int a{},b{},c{},d{}; for (auto& s : {a, b, c, d}) { s = 1; } std::cout << a << std::endl; return 0; } Pruébalo en godbolt El error del compilador es: error: assignment of read-only reference 's' Ahora, en mi caso …



1
¿Se puede pasar una plantilla variable como argumento de plantilla?
El siguiente ejemplo sin sentido no se compila, pero ¿hay alguna otra forma de pasar una plantilla variable como argumento de plantilla? template<typename T> constexpr auto zero = T{0}; template<typename T, template<typename> auto VariableTemplate> constexpr auto add_one() { return VariableTemplate<T> + T{1}; } int main() { return add_one<int, zero>(); } …




3
¿Puedo usar std :: transform en su lugar con una política de ejecución paralela?
Si no me equivoco, puedo hacer que std::transformfuncione en su lugar usando el mismo rango que un iterador de entrada y salida. Supongamos que tengo algún std::vectorobjeto vec, entonces escribiría std::transform(vec.cbegin(),vec.cend(),vec.begin(),unary_op) utilizando una operación unaria adecuada unary_op. Usando el estándar C ++ 17, me gustaría ejecutar la transformación en paralelo …

7
Borrar () un elemento en un vector no funciona
Tengo un vector Necesito eliminar los últimos 3 elementos en él. Describió esta lógica. El programa se bloquea. ¿Cuál podría ser el error? vector<float>::iterator d = X.end(); for (size_t i = 1; i < 3; i++) { if (i == 1) X.erase(d); else X.erase(d - i); }
10 c++  vector 


2
Deducción de tipos de argumentos de plantilla de plantilla C ++
Tengo un código que encuentra e imprime las coincidencias de un patrón que va sobre el contenedor de cadenas. La impresión se realiza en la función foo que tiene la plantilla El código #include <iostream> #include <algorithm> #include <iterator> #include <vector> #include <string> #include <tuple> #include <utility> template<typename Iterator, template<typename> …

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.