Preguntas etiquetadas con c++

162
¿Qué es string_view?

string_viewera una característica propuesta dentro de C ++ Library Fundamentals TS ( N3921 ) agregada a C ++ 17 Según tengo entendido, es un tipo que representa algún tipo de "concepto" de cadena que es una vista de cualquier tipo de contenedor que podría almacenar algo visible como una...

161
Cómo evitar el desbordamiento en expr. A B C D

Necesito calcular una expresión que se vea así: A*B - C*Ddonde están sus tipos: signed long long int A, B, C, D; cada número puede ser realmente grande (sin desbordar su tipo). Si bien A*Bpodría causar un desbordamiento, al mismo tiempo, la expresión A*B - C*Dpuede ser realmente pequeña. ¿Cómo...

161
std :: function vs template

Gracias a C ++ 11 recibimos la std::functionfamilia de envoltorios de functor. Desafortunadamente, sigo escuchando solo cosas malas sobre estas nuevas incorporaciones. Lo más popular es que son horriblemente lentos. Lo probé y realmente apestan en comparación con las plantillas. #include...

161
¿Por qué requerimos requiere requiere?

Una de las esquinas de los conceptos de C ++ 20 es que hay ciertas situaciones en las que tienes que escribir requires requires. Por ejemplo, este ejemplo de [expr.prim.req] / 3 : Una expresión require también se puede usar en una cláusula require ([temp]) como una forma de escribir...

160
Stack, Static y Heap en C ++

He buscado, pero no he entendido muy bien estos tres conceptos. ¿Cuándo debo usar la asignación dinámica (en el montón) y cuál es su verdadera ventaja? ¿Cuáles son los problemas de static y stack? ¿Podría escribir una aplicación completa sin asignar variables en el montón? Escuché que otros...

160
¿Cómo obtener std :: puntero vectorial a los datos en bruto?

Estoy tratando de usar std::vectorcomo una charmatriz. Mi función toma un puntero vacío: void process_data(const void *data); Antes simplemente usaba este código: char something[] = "my data here"; process_data(something); Que funcionó como se esperaba. Pero ahora necesito la dinámica de...

159
Plantillas C ++ que aceptan solo ciertos tipos

En Java, puede definir una clase genérica que acepte solo los tipos que amplían la clase de su elección, por ejemplo: public class ObservableList<T extends List> { ... } Esto se hace usando la palabra clave "extend". ¿Hay algún equivalente simple a esta palabra clave en C ++?...

159
'typeid' versus 'typeof' en C ++

Me pregunto cuál es la diferencia entre typeidy typeofen C ++. Esto es lo que sé: typeidse menciona en la documentación de type_info que se define en el archivo de encabezado C ++ typeinfo . typeofse define en la extensión GCC para C y en la biblioteca Boost de C ++ . Además, aquí está la...