Perché non è possibile passare da header a cpp in Visual Studio? [chiuso]

4

Negli ultimi otto anni attendo che Microsoft aggiunga le funzionalità di base del C ++ di commutazione avanti e indietro tra i file .h e .cpp, e continua a stupirmi che non è ancora supportato in Visual Studio 2010. Qualcuno sa perché si rifiutano di aggiungere questa caratteristica essenziale?

    
posta Dimitri C. 14.12.2010 - 11:02
fonte

4 risposte

6

Visual Assist lo fa, ma ti offre anche di aprire qualsiasi file nella tua soluzione che ha un nome che include le sottostringhe che dai . Estremamente utile a mio parere: lo uso sempre, ma difficilmente uso il comando 'salta all'intestazione / sorgente' ...

    
risposta data 14.12.2010 - 11:54
fonte
4

È facile scrivere una macro che lo faccia: Passa tra l'intestazione e il file CPP per Visual Studio .NET di Pavel Sokolov, Pierre Arnaud

Pavel Sokolov's Solution

A simple macro that allows you to quickly switch between the associated header and implementation files. This is a modification for Visual Studio .NET of the macro by Nooruddin Kapasi.

This macro simply switches between a *.h file and a *.cpp file, without any errors (if the *.h or the *.cpp file does not exist)...

Pierre Arnaud's Solution

The Switch_H_CPP macro switches between the active document (either source file or header file) and its counterpart (either header file or source file). Whereas simpler macros get this job done more efficiently (see the above), they do not work if the header files and source files are not stored in the same directory...

Switch_H_CPP looks for a matching counterpart by walking through all the loaded project files. It can, therefore, deduce the full path of the file and open it even if it is in a different directory as the active document...

    
risposta data 14.12.2010 - 11:14
fonte
3

Non ho usato Visual Studio per alcuni anni, ma le funzioni IIRC "Vai alla definizione" e "Vai alla dichiarazione" lo fanno (anche se male, soprattutto quando si tratta di costruttori)

Immagino che uno dei motivi per cui non lo implementano su un nome di file è che non c'è niente in C ++ che imponga una convenzione sulla disposizione delle classi nei file.

es. Il modo "ovvio" di organizzare una classe chiamata "MyClass" in un progetto C ++ consiste nel mettere la classe in MyClass.h e i metodi in MyClass.cpp.

Un altro modo assolutamente plausibile è di mettere la definizione della classe in "elephant.h" e i metodi in "mouse.cpp"

Puoi inserire tutte le tue classi in un file "classes.h" e definire tutti i tuoi metodi in un unico metodo per file.

Non sto dicendo che dovresti organizzare i tuoi progetti in questo modo, solo che potresti, ed è per questo che saltare tra i file .cpp e .h non è plausibile, a meno che non sia fatto nello stesso modo in cui è già implementato.

    
risposta data 14.12.2010 - 12:40
fonte
1

Come mostrano le discussioni su Visual Assist, questa funzione è tutt'altro che semplice: quali estensioni sono incluse (.c, .cpp, .cxx, .h, .hpp, .nothingatall, .inl, ...), che modo li fai scorrere quando ce ne sono più di due, ecc.

Sono d'accordo che sia ancora una funzionalità piuttosto semplice da implementare, ma non è così semplice come pensi.

    
risposta data 14.12.2010 - 12:00
fonte

Leggi altre domande sui tag