¿Cómo puedo forzar que un parámetro de plantilla Tsea una subclase de una clase específica Baseclass? Algo como esto: template <class T : Baseclass> void function(){ T *object = new T(); }
¿Cómo puedo forzar que un parámetro de plantilla Tsea una subclase de una clase específica Baseclass? Algo como esto: template <class T : Baseclass> void function(){ T *object = new T(); }
¿Es posible indicar al compilador GNU c ++ que se detenga después de que se encuentren 5 errores? No puedo encontrar esto en la documentación.
En C ++, ¿el operador?: Es más rápido que las declaraciones if () ... else? ¿Existen diferencias entre ellos en el código compilado?
La pregunta está en negrita en la parte inferior, el problema también se resume en el fragmento de código de destilación hacia el final. Estoy tratando de unificar mi sistema de tipos (el sistema de tipos hace y de un tipo a una cadena) en un solo componente (como lo define Lakos). Estoy usando...
Tengo una lista de enteros sobre los que necesito iterar, pero una matriz es inadecuada. ¿Cuáles son las diferencias entre vectorsy? lists¿Hay algo que deba saber antes de elegir un tipo? Para ser claros, he leído los documentos de QT, pero este es el alcance de lo que sé: QList<T>,...
Trabajo con una gran cantidad de código de cálculo escrito en C ++ pensando en un alto rendimiento y una baja sobrecarga de memoria. Utiliza contenedores STL (principalmentevector ) mucho, e itera sobre esos contenedores casi en cada función. El código iterativo se ve así: for (int i = 0; i...
Estoy tratando de aprender un poco más sobre cómo funcionan los flujos de E / S en C ++, y estoy realmente confundido sobre cuándo usar qué. ¿Qué es exactamente un streambuf? ¿Cuándo utilizo a streambuf, en comparación con a string, an istreamo a vector? (Ya conozco los últimos tres, pero no...
En PHP y C #, las constantes se pueden inicializar a medida que se declaran: class Calendar3 { const int value1 = 12; const double value2 = 0.001; } Tengo la siguiente declaración de C ++ de un functor que se usa con otra clase para comparar dos vectores matemáticos: struct equal_vec {...
Leí algunas preguntas aquí sobre SO sobre este tema que me parece confuso. Recién comencé a aprender C ++ y aún no he estudiado las plantillas o la sobrecarga de operadores y demás. Ahora, ¿hay una forma sencilla de sobrecargar class My { public: int get(int); char get(int); } sin...
Hay un hilo en la sección de comentarios de este post sobre el uso std::vector::reserve()vs std::vector::resize(). Aquí está el código original: void MyClass::my_method() { my_member.reserve(n_dim); for(int k = 0 ; k < n_dim ; k++ ) my_member[k] = k ; } Creo que para escribir elementos...
clang emite una advertencia al compilar el siguiente código: struct Base { virtual void * get(char* e); // virtual void * get(char* e, int index); }; struct Derived: public Base { virtual void * get(char* e, int index); }; La advertencia es: warning: 'Derived::get' hides overloaded...
class Person { public: int age; }; Quiero almacenar objetos de la clase Person en una cola de prioridad. priority_queue< Person, vector<Person>, ??? > Creo que necesito definir una clase para la comparación, pero no estoy seguro. Además, cuando escribimos, priority_queue<...
Considere el siguiente programa corto de C ++: #include <iostream> class B { public: operator bool() const { return false; } }; class B2 : public B { public: operator int() { return 5; } }; int main() { B2 b; std::cout << std::boolalpha << (bool)b <<...
La página cplusplus.comshared_ptr hace una distinción entre un vacío std::shared_ptr y un nulo shared_ptr . La página cppreference.com no menciona explícitamente la distinción, pero usa tanto "vacío" como comparación nullptren su descripción del std::shared_ptrcomportamiento. ¿Hay alguna...
Esta no es una pregunta de función lambda, sé que puedo asignar una lambda a una variable. ¿Cuál es el punto de permitirnos declarar, pero no definir una función dentro del código? Por ejemplo: #include <iostream> int main() { // This is illegal // int one(int bar) { return 13 + bar;...
Actualmente estoy trabajando en un proyecto y tengo el siguiente problema. Tengo un método C ++ que quiero trabajar de dos formas diferentes: void MyFunction() { foo(); bar(); foobar(); } void MyFunctionWithABonus() { foo(); bar(); doBonusStuff(); foobar(); } Y me gustaría no...
Las diferencias residen en el valor devuelto que proporciona entradas sobre el desempate, creo, como este código : int main() { std::cout.precision(100); double input = std::nextafter(0.05, 0.0) / 0.1; double x1 = floor(0.5 + input); double x2 = round(input); std::cout << x1...
Hay una publicación antigua que solicita una construcción por la que sizeofregresaría 0. Hay algunas respuestas de alta puntuación de usuarios de alta reputación que dicen que, según el estándar, ningún tipo o variable puede tener un tamaño de 0. Y estoy 100% de acuerdo con eso. Sin embargo,...
Me estoy moviendo hacia C ++ 11 desde C ++ 98 y me he familiarizado con la autopalabra clave. Me preguntaba por qué necesitamos declarar explícitamente autosi el compilador puede deducir automáticamente el tipo. Sé que C ++ es un lenguaje fuertemente tipado y esta es una regla, pero ¿no fue...
Leí que en C ++ 17 podemos inicializar variables en ifdeclaraciones como esta if (int length = 2; length == 2) //execute something En vez de int length = 2; if (length == 2) //do something Aunque es más corto, afecta la legibilidad del código (especialmente para las personas que no...