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
¿Por qué remove_reference no funciona en las funciones?
Me encontré con algo extraño al hacer una metaprogramación de plantilla el otro día. Básicamente se trata de esta afirmación, no (como era de esperar) pasar. static_assert(std::is_same_v<void(), std::remove_reference_t<void()&>>); Al principio pensé que estaba cometiendo un error sintáctico al definir una referencia de función, pero esta afirmación pasa, mostrando que ese …
38 c++  templates  types  c++17 

4
Meta programación de plantillas
¿Alguien puede explicarme por qué la primera plantilla de metaprogramación va a un ciclo infinito, pero la segunda se ejecuta correctamente? #include <iostream> using namespace std; template<int N, int M> struct commondivs { static const int val = (N<M) ? commondivs<N,(M-N)>::val : commondivs<(N-M),M>::val; }; template<int N> struct commondivs<N,N> { static …



4
Sobrecargar una función usando plantillas
Estoy tratando de definir una función usando plantillas y quiero que el nombre de tipo sea int o anEnum (una enumeración específica que había definido). He intentado lo siguiente pero he fallado: template <int | anEnum T> // or <int T, anEnum T> or <int, anEnum T> bool isFunction(const T …


2
¿Es legal asignar de nuevo un puntero para que funcione?
Los punteros a funciones no son punteros de datos simples ya que no pueden almacenarse en un puntero nulo *. No obstante, parece que puedo almacenar la copia de un puntero de función en la memoria dinámica (en gcc y clang) como en el código a continuación. ¿Es legal ese …
33 c++ 


3
C ++ decltype y paréntesis: ¿por qué?
El tema se discutió antes , pero esto no es un duplicado. Cuando alguien pregunta sobre la diferencia entre decltype(a)y decltype((a)), la respuesta habitual es: aes una variable, (a)es una expresión. Encuentro esta respuesta insatisfactoria. Primero, aes una expresión también. Las opciones para una expresión primaria incluyen, entre otras: ( …

4
¿Por qué dos cláusulas de uso que se resuelven en el mismo tipo se consideran ambiguas en gcc
Tengo dos clases base con cláusulas de uso class MultiCmdQueueCallback { using NetworkPacket = Networking::NetworkPacket; .... } class PlcMsgFactoryImplCallback { using NetworkPacket = Networking::NetworkPacket; .... } Entonces declaro una clase class PlcNetwork : public RouterCallback, public PlcMsgFactoryImplCallback, public MultiCmdQueueCallback { private: void sendNetworkPacket(const NetworkPacket &pdu); } el compilador marca una …


6
¿Es posible que un #include faltante rompa el programa en tiempo de ejecución?
¿Hay algún caso en el que la falta de un #includese rompa el software en tiempo de ejecución, mientras que la compilación aún continúa? En otras palabras, ¿es posible que #include "some/code.h" complexLogic(); cleverAlgorithms(); y complexLogic(); cleverAlgorithms(); ¿ambos construirían con éxito, pero se comportarían de manera diferente?
31 c++ 

4
¿Cómo se llama el (...) en C y C ++?
Uno de los usos de ...es denotar entidades variadas en C y C ++. ¿Cual es su nombre? ¿Se clasifica como operador u otra cosa cuando se usa de esa manera? ¿Algún otro detalle con respecto ...? Editar: sé el propósito de .... Estoy preguntando sobre su nombre y clasificación, …

6
¿Es seguro intercambiar dos vectores diferentes en C ++, utilizando el método std :: vector :: swap?
Supongamos que tiene el siguiente código: #include <iostream> #include <string> #include <vector> int main() { std::vector<std::string> First{"example", "second" , "C++" , "Hello world" }; std::vector<std::string> Second{"Hello"}; First.swap(Second); for(auto a : Second) std::cout << a << "\n"; return 0; } Imagina que los vectores no lo son std::string, sin embargo, las …
30 c++  c++11  vector  stdvector  swap 


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.