2012-06-25 27 views
8

Durante la scrittura di codice C++, spesso iniziare la scrittura di codice piena 'applicazione' nei miei file di intestazione, poi bisogno di refactoring l'implementazione in un cpp file.dividere automaticamente (refactoring) .h in intestazione e implementazione (h + cpp)

Questo è ottimo, ma trovo questo processo laborioso, ma per il resto abbastanza semplice, quindi mi sono chiesto se esiste un modo automatico per farlo?

In particolare, voglio convertire tutte le definizioni di classe e funzioni in .h alle dichiarazioni, e li hanno dichiarati in un nuovo file .cpp.

Sto usando xcode, ma sono aperto a qualsiasi soluzione.

+0

XCode? Pensavo che intendesse ObjectiveC (++), non "semplice" C++. –

+0

XCode è solo un IDE generico che si concentra sull'Obiettivo C. Non sapevo se preoccuparci di menzionarlo, ma meglio fornire troppe informazioni. ;) – aaaidan

risposta

9

C'è Lazy C++ dove si scrive solo un file .lzz e si genera .h e .cpp per te.

Sono davvero impaziente di C++ modules in cui si scrive solo .cpp e il file di importazione viene generato automaticamente. Ma dovremo aspettare qualche anno anche se Clang ha iniziato a implementare i moduli. Here sono alcuni esempi.

+0

Ehi, mi piace! Quindi potresti avere una regola/dipendenza makefile generare 'cpp' e' h' quando cambia '.lzz'. Bello. – aaaidan

1

è possibile utilizzare alcuni strumenti come Makeheaders

http://www.hwaci.com/sw/mkhdr/

ma in generale, questi strumenti non sono completi, soprattutto incontrare nuove ++ 11 file C.

+0

Mmm, sembrava promettente, ma ha apportato molte modifiche per farlo compilare (ha dovuto lanciare dozzine di puntatori void restituiti da malloc ai tipi corretti). Compilato, ma non ha dato risultati quando l'ho eseguito. Qualche idea? – aaaidan

+0

Oh, è simile a lzz. Quindi puoi continuare a usare lzz :) –

1

Potrebbe anche interessarti la funzione di Eclipse "Refactor/Toggle function". Tuttavia, non funziona sempre correttamente.