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.

4
Enum extraño en destructor
Actualmente, estoy leyendo el código fuente de Protocol Buffer, y encontré un enumcódigo extraño definido aquí ~scoped_ptr() { enum { type_must_be_complete = sizeof(C) }; delete ptr_; } void reset(C* p = NULL) { if (p != ptr_) { enum { type_must_be_complete = sizeof(C) }; delete ptr_; ptr_ = p; } …
83 c++  enums 


9
Pasar de C ++ a C
Después de unos años codificando en C ++, recientemente me ofrecieron un trabajo codificando en C, en el campo integrado. Dejando de lado la cuestión de si es correcto o incorrecto descartar C ++ en el campo incrustado, hay algunas características / modismos en C ++ que extrañaría mucho. Sólo …
83 c++  c 

1
cómo funcionan boost :: function y boost :: bind
No me gusta tener cajas mágicas esparcidas por todo mi código ... ¿cómo funcionan exactamente estas dos clases para permitir que básicamente cualquier función se asigne a un objeto de función, incluso si la función <> tiene un parámetro completamente diferente al que estoy pasando? boost::bind Incluso funciona con diferentes …

9
¿Qué es más rápido: x << 1 ox << 10?
No quiero optimizar nada, lo juro, solo quiero hacer esta pregunta por curiosidad. Sé que en la mayoría del hardware hay un comando de ensamblaje de bit-shift (por ejemplo shl, shr), que es un solo comando. Pero, ¿importa (nanosegundos o CPU) cuántos bits desplaza? En otras palabras, ¿alguno de los …
83 c++  c  performance  cpu  low-level 

4
¿Cómo pasar std :: unique_ptr?
Estoy teniendo mi primer intento de usar C ++ 11 unique_ptr; Estoy reemplazando un puntero crudo polimórfico dentro de un proyecto mío, que es propiedad de una clase, pero que se transmite con bastante frecuencia. Solía ​​tener funciones como: bool func(BaseClass* ptr, int other_arg) { bool val; // plain ordinary …
83 c++  c++11  unique-ptr 



12
¿Es seguro devolver una estructura en C o C ++?
Lo que entiendo es que esto no debería hacerse, pero creo que he visto ejemplos que hacen algo como esto (el código de nota no es necesariamente correcto sintácticamente, pero la idea está ahí) typedef struct{ int a,b; }mystruct; Y luego aquí hay una función mystruct func(int c, int d){ …

5
¿Cómo detectar una falla de segmentación en Linux?
Necesito detectar fallas de segmentación en operaciones de limpieza de bibliotecas de terceros. Esto sucede a veces justo antes de que salga mi programa y no puedo solucionar la verdadera razón de esto. En la programación de Windows, podría hacer esto con __try - __catch. ¿Existe una forma multiplataforma o …

7
En std :: multiset, ¿hay una función o algoritmo para borrar solo una muestra (unicada o duplicada) si se encuentra un elemento?
Tal vez esto es un duplicado, pero no encontré nada de búsqueda: Cuando erase(value)se pidió a std::multisettodos los elementos con el valor encontrado se eliminan. La única solución que se me ocurre es: std::multiset&lt;int&gt;::iterator hit(mySet.find(5)); if (hit!= mySet.end()) mySet.erase(hit); Esto está bien, pero pensé que podría haber algo mejor. Algunas …
83 c++  stl  multiset 

12
¿Todos los operadores de C ++ devuelven algo?
Todos los operadores de C ++ con los que he trabajado devuelven algo, por ejemplo, el +operador devuelve el resultado de la suma. ¿Todos los operadores de C ++ devuelven algo o hay algunos operadores de C ++ que no devuelven nada?
83 c++  operators 


2
std :: ignore con enlaces estructurados?
Preludio: std::tuple&lt;int, int, int&gt; f(); std::tuple&lt;int, int, float, int&gt; g(); C ++ 1z introducirá sintaxis para enlaces estructurados que permitirán escribir en lugar de int a, b, c; std::tie(a, b, c) = f(); algo como auto [a, b, c] = f(); Sin embargo, std::tietambién se permite especificar std::ignoreque se ignoren …


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.