Articles of estilo de encoding

Reemplazo del código de la placa de la caldera: ¿hay algo malo sobre este código?

Recientemente he creado estos dos métodos (no relacionados) para reemplazar gran cantidad de código de placa de caldera en mi aplicación de formas de inversión. Por lo que puedo decir, funcionan bien, pero necesito algún consuelo / consejo sobre si hay algunos problemas que me pueden estar perdiendo. (de memoria) static class SafeInvoker { //Utility […]

Estructuras O opacas: ¿cómo deberían declararse?

He visto los dos estilos siguientes de declarar tipos opacos en las API de C. ¿Hay alguna ventaja clara al usar un estilo sobre el otro? Opción 1 // foo.h typedef struct foo * fooRef; void doStuff(fooRef f); // foo.c struct foo { int x; int y; }; opcion 2 // foo.h typedef struct _foo […]

Ventajas de std :: for_each over for loop

¿Hay alguna ventaja de std::for_each over for loop? Para mí, std::for_each solo parece dificultar la legibilidad del código. ¿Por qué entonces algunos estándares de encoding recomiendan su uso?

¿Debería la statement ‘if’ tener siempre una cláusula ‘else’?

Esto puede ser un argumento religioso, pero ha sido debatido ad-nauseum aquí en mi trabajo si todas las declaraciones IF deberían incluir una cláusula ELSE, incluso si la cláusula ELSE solo contiene un comentario que declara que fue ‘intencionalmente dejada en blanco’. He escuchado argumentos para ambas partes: el campo ‘Para’: asegura que los códigos […]

C ++ getters / setters estilo de encoding

He estado progtwigndo en C # por un tiempo y ahora quiero repasar mis habilidades en C ++. Tener la clase: class Foo { const std::string& name_; … }; Cuál sería el mejor enfoque (solo quiero permitir el acceso de lectura al campo name_): use un método getter: inline const std::string& name() const { return […]

¿Cuáles son tus modismos de estilo de encoding C ++ favoritos

¿Cuáles son tus modismos de estilo de encoding de C ++ favoritos? Pregunto acerca de la tipografía de estilo o encoding, como dónde colocas las llaves, si hay espacios después de las palabras clave, el tamaño de las sangrías, etc. Esto se opone a las mejores prácticas o requisitos, como eliminar matrices con delete[] . […]

¿Herramientas para encontrar encabezados incluidos que no se utilizan?

Sé que PC-Lint puede informarle sobre los encabezados que se incluyen pero no se usan. ¿Hay alguna otra herramienta que pueda hacer esto, preferiblemente en Linux? Tenemos una gran base de código que a lo largo de los últimos 15 años ha visto una gran cantidad de funcionalidades moverse, pero rara vez se eliminan las […]

¿Debería siempre usar ‘int’ para los números en C, incluso si no son negativos?

Siempre uso unsigned int para valores que nunca deberían ser negativos. Pero hoy noté esta situación en mi código: void CreateRequestHeader( unsigned bitsAvailable, unsigned mandatoryDataSize, unsigned optionalDataSize ) { If ( bitsAvailable – mandatoryDataSize >= optionalDataSize ) { // Optional data fits, so add it to the header. } // BUG! The above includes the […]

Compruebe si una cadena contiene un elemento de una lista (de cadenas)

Para el siguiente bloque de código: For I = 0 To listOfStrings.Count – 1 If myString.Contains(lstOfStrings.Item(I)) Then Return True End If Next Return False El resultado es: Caso 1: myString: C:\Files\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: True Caso 2 myString: C:\Files3\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: False La lista (listOfStrings) puede contener varios elementos (mínimo 20) y […]

¿Cuál es el propósito de usar llaves (es decir {}) para una sola línea si o lazo?

Estoy leyendo algunas notas de clase de mi profesor de C ++ y él escribió lo siguiente: Usar sangría // Aceptar Nunca confíe en la precedencia del operador: siempre use paréntesis // Aceptar Siempre use un bloque {} – incluso para una sola línea // no está bien , ¿por qué ??? Objeto Const en […]