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
¿Por qué hay un std :: move en <algorithm> y <utility>
La mayoría de las veces que veo std::movepublicado aquí, hace referencia a la &lt;utility&gt;versión. El std::moveen&lt;algorithm&gt; realidad hace lo que su nombre sugiere, movimiento , mientras que el std::moveen&lt;utility&gt; proyecta su argumento a una xValue, que es básicamente un paso de preprocesamiento para finalmente mover el xValue en un valor-I. …

1
Especialización basada en validez de tamaño de matriz
Tratando de especializarse en función de la validez del tamaño de la matriz: // base template template&lt;int p, typename T = void&gt; struct absolute { operator int () const { return 0; } }; // positive case template template&lt;int p&gt; struct absolute&lt;p, typename std::void_t&lt;int[p]&gt;&gt; { operator int () const { …


1
Cómo entender la resolución propuesta de # 1664
Después de mirar la resolución propuesta de # 1664 ( resolución propuesta 1664 ), estoy confundido por las reglas de un argumento predeterminado de una plantilla de función. Cite el contenido aquí: De acuerdo con 8.1.5 [expr.prim.lambda] párrafo 3 El tipo de cierre se declara en el ámbito de bloque …

1
acosl no está en el espacio de nombres estándar?
Según cppreference, la función acosldebe estar en el espacio de nombres estándar: https://en.cppreference.com/w/cpp/numeric/math/acos Sin embargo, con gcc (o clang), el siguiente código no se compila: #include &lt;cmath&gt; int main() { long double var = std::acosl(4.0); return 0; } Me sale el siguiente mensaje de error: gay@latitude-7490:~$ g++ -std=c++11 test.cpp test.cpp: …
8 c++  c++11 


1
Mala deducción de tipo al pasar el puntero de función sobrecargado y sus argumentos
Estoy tratando de proporcionar un contenedor std::invokepara hacer el trabajo de deducir el tipo de función incluso cuando la función está sobrecargada. (Hice una pregunta relacionada ayer para la versión de puntero variadic y método). Cuando la función tiene un argumento, este código (C ++ 17) funciona como se espera …


4
Puntero único: ¿por qué se llama al destructor 3 veces?
Tengo un método que devuelve un objeto por valor. El método proviene de una biblioteca sobre la que no tengo control. Para el manejo adicional del objeto, quiero seguir trabajando con un unique_ptr en este objeto. Aquí hay un ejemplo: #include &lt;iostream&gt; #include &lt;memory&gt; class Bla { public: Bla() { …
8 c++  unique-ptr 


2
¿Cómo hago que mi estructura sizeof sum funcione con un paquete de parámetros vacío?
Tengo esta estructura variada para determinar la suma del tamaño de todos los tipos pasados: template &lt;typename U, typename... T&gt; struct TotalSizeOf : std::integral_constant&lt;size_t, sizeof(U) + TotalSizeOf&lt;T...&gt;::value&gt; {}; template &lt;typename U&gt; struct TotalSizeOf&lt;U&gt; : std::integral_constant&lt;size_t, sizeof(U)&gt; {}; Uso: TotalSizeOf&lt;double, int, char&gt;::value La pregunta es, ¿cómo modifico esto para permitir que …
8 c++  c++14 




3
Cómo resolver el problema de "la lectura de la variable 'a' no constexpr no está permitida en una expresión constante" con boost.hana
Estoy usando c ++ 17 con Boost.hana para escribir algunos programas de metaprogramación. Un problema que me atrapó es qué tipo de expresión se puede usar en un contexto constexpr como static_assert. Aquí hay un ejemplo: #include &lt;boost/hana.hpp&gt; using namespace boost::hana::literals; template &lt;typename T&gt; class X { public: T data; …
8 c++  boost  boost-hana 

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.