Odio hacer una pregunta intencionalmente subjetiva aquí, pero no tengo a nadie más para preguntar esto directamente ...C++: ¿usar auto o typedef?
Estoy tratando de "liderar con el ejemplo" en mi equipo adoptando más conceptos modernos de C++ en el nuevo código que escribo. Mis compañeros de trabajo son un poco tímidos con las plantillas y se quejan de tener que escribir unique_ptr<Foobar>
o shared_ptr<Foobar>
en vez de solo Foobar*
cuando utilizo algunas clases que he creado recientemente (los métodos de fábrica devuelven unique_ptr
sy yo almaceno listas de estos objetos en vectores usando shared_ptr
).
Me torcieron el brazo y me convencieron para convertirlos en algo más fácil de escribir, por ejemplo FoobarUniquePtr
.
Pero ahora estoy en un lio de const-correctness con estos typedefs. Tendría que definir typedefs adicionales para cada tipo const y non const, y const const_FoobarUniquePtr
no parece expresar correctamente la semántica const.
Entonces, para mi pregunta, ¿tendría sentido dejar de usar estos typedefs y en su lugar empujar auto
a mis compañeros de equipo cuando se quejan de tener que escribir los punteros inteligentes con plantillas? También estoy abierto a otras alternativas.
+1 por intentar hacer que tus compañeros de trabajo utilicen prácticas más modernas. – Nick
¿Cuál es el problema con 'unique_ptr' o 'const unique_ptr '? –
Useless
parece que el auto fue creado solo para este tipo de cosas. es un buen atajo que te permite simplemente poner el auto en lugar de averiguar exactamente qué tipo necesitas usar para la variable. cuando preguntas si tiene sentido, bueno, es parte del estándar de lenguaje y usarlo de esta manera me suena 'correcto'. Pero, por supuesto, podrían surgir algunas preferencias personales, ya que supongo que algunos podrían argumentar que preferirían ver el tipo explícito en cualquier lugar que se utilice y no confiar en el auto. Pero más allá de las preferencias personales, parece un uso válido. – Nerdtron