Crear archivos .cpp desde Visual Studio .h

Estoy usando Visual Studio 2008, y me preguntaba si era posible crear los archivos .cpp dados los archivos de encabezado.

Entonces, si tengo un archivo .h con una clase y funciones, puedo crear el archivo de código con todas las funciones escritas con un cuerpo en blanco

Debería verificar el complemento de Visual Assist X para Visual Studio. Tiene muchas características.

Atajo: alt+shift+f10 (VS2015)

Lo he buscado durante más de 10 años, me han dicho en numerosas ocasiones que no existe nada como esto, y que uno necesita usar de alguna manera herramientas externas para obtener esta funcionalidad básica.

… Ahora, finalmente encontré algo útil.

Resalte el nombre de clase en su archivo .h, y usar ese atajo hará que intellisense genere las definiciones relevantes (también crea el archivo .cpp si no se crea).

También es un atajo de propósito general que ex. crea stubs de método para usted, si crea firmas de función en el encabezado (y resalte el nombre de la función). Como puede ver en la captura de pantalla siguiente, también le permite crear automáticamente todos los virtuales de la clase principal, etc.

No puedo creer lo mucho que esto ha mejorado de repente la productividad (¡ adiós a la copia manual! ). Y me parece absolutamente impactante cómo nunca he visto / me han referido a esto, incluso en Stack Overflow, hasta este momento.

¡Disfruta de tus nuevos poderes y corre la voz!

Revolución

Puede decir Proyecto -> Agregar clase, pero eso solo hace lo básico. No creo que puedas (todavía) lo que estás sugiriendo, pero sería realmente increíble y no hay ninguna razón (que se me ocurra) por la que no puedes.

Prueba mi complemento AtomineerUtils .

No hará un encabezado completo, pero puede convertir una statement de encabezado de un solo método en una implementación en el archivo fuente relacionado. Agrega el nombre de clase / espacios de nombres según sea necesario, completa una implementación predeterminada siempre que sea posible (por ejemplo, return (NULL)) y agrega un Doxgen o DocXml doc-comment, incorporando y ajustando el comentario del encabezado como la breve descripción if disponible.

¿Está buscando algo para procesar lotes de archivos de encabezado, como para construir un generador de código, o es algo único, cada vez que crea una nueva clase?

Tengo una gran selección de macros autodidactas que uso durante el desarrollo de forma regular, y después de leer las respuestas a esta pregunta, estoy bastante inspirado para escribir un generador de clases basado en el archivo de encabezado. La mejor parte es que ya lo hice, pero no en un formulario de Visual Studio. Lo hice mientras escribía un generador de código, que tenía que generar todas estas llamadas a función, y colocar mutex estándar alrededor de cada llamada, y luego HACER la llamada predeterminada, y tomar cualquier valor de retorno de error, y crear una cadena LastError que era almacenado en la clase.

La parte mala es que puedes volverte loco con algo como esto, pero parece que estarías contento con la funcionalidad básica … Consideraría simplemente crear una Macro, para la que puedes crear un Botón de Barra de Herramientas, y si hace clic mientras se carga un archivo de encabezado, se desgarrará y (cree .cpp, si no existe), escanea el .cpp, omitiendo cualquier método que pueda existir. Esto también te da la posibilidad de agregar nuevas funciones a las clases y luego en un movimiento generar todos los cuerpos del método.

Tal vez pueda contactarme desde el SO, y veremos si nuestros dos planes están de acuerdo. Puedo ver una gran necesidad de esto yo solo … Solo FYI; la forma en que actualmente manejo esto …

Construyo mi archivo .H, luego copio todo el encabezado al archivo .CPP, y lo pego. Luego comienza el hackin ‘y slashin’ en el texto, eliminando todo el público :, privado: protegido: líneas , la clase {} línea, y así sucesivamente … Luego, copio el nombre de clase junto con el operador del osciloscopio al portapapeles, y empiezo a bajar por la pantalla pegándolo frente a todos los métodos (funciones). Luego, haz una Búsqueda / Reemplazar en ; con ” \ r \ n {\ r \ n} \ r \ n ” … Además, cualquier otra pequeña limpieza que pueda hacer …

Usando ese método, pierdo un par de cosas clave. Uno de ellos es el Doxygen mencionado anteriormente, u otro tipo de comentarios (si estoy escribiendo clases de API, esto es MUCHO más importante que si solo estoy escribiendo alguna clase para algo, que luego pondría la mayor parte de los comentarios). en el FlowerBox , o mejor aún, escriba el código de autocomentarios .), y no obtengo los valores automáticos de retorno insertados, o simplemente lanzo declaraciones que arrojen algún tipo de excepción “NotImplemented”.

ENTONCES es hora de comenzar a escribir el código de clase. 🙂

Como mencionó Ed S. , usted es progtwigdor, por lo que PODRÍA escribir esto usted mismo, y si ese es su plan, avíseme, tal vez pueda compartir algo de mi código existente que podría ayudarlo, y ambos podemos beneficiarnos de el resultado.

Espero que no rompa ninguna de las reglas de SO aquí publicando esta respuesta, así que si lo estoy, lo siento mucho y estaré encantado de eliminarla o que un administrador elimine esta publicación.

Espero que esto ayude, y tal vez incluso te dé algunas ideas.