2012-06-25 15 views
8

Podczas pisania kodu w C++ często zaczynam od napisania pełnego kodu "implementacyjnego" w moich plikach nagłówkowych, a następnie muszę przekonwertować implementację na plik .cpp plik.Automatyczne dzielenie (refaktoryzacja) .h na nagłówek i implementację (h + cpp)

To jest świetne, ale uważam, że proces ten jest pracochłonny, ale poza tym całkiem łatwy, więc zastanawiałem się, czy istnieje zautomatyzowany sposób na zrobienie tego?

W szczególności chcę przekonwertować wszystkie definicje klas i funkcji w .h na deklaracje i zadeklarować je w nowym pliku .cpp.

Używam xcode, ale jestem otwarty na wszelkie rozwiązania.

+0

XCode? Myślałem, że to oznacza ObjectiveC (++), a nie "zwykły" C++. –

+0

XCode to tylko ogólne IDE, które koncentruje się na Celu C. Nie był pewien, czy zawracać sobie tym głowy, ale lepiej podać zbyt wiele informacji. ;) – aaaidan

Odpowiedz

9

Istnieje Lazy C++, w którym zapisujesz tylko jeden plik .lzz i generuje on dla Ciebie .h i .cpp.

Naprawdę nie mogę się doczekać, aby C++ modules napisać tylko .cpp, a plik importu zostanie wygenerowany automatycznie. Ale będziemy musieli poczekać kilka lat, chociaż Clang zaczął wdrażać moduły. Here to tylko niektóre przykłady.

+0

Hej, podoba mi się! Więc możesz mieć regułę/zależność makefile generując 'cpp' i' h' gdy zmieni się '.lzz'. Miły. – aaaidan

1

można korzystać z niektórych narzędzi, takich jak Makeheaders

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

ale w ogóle, narzędzia te nie są kompletne, zwłaszcza poznawanie nowych C++ 11 plików.

+0

Mmm, wyglądał obiecująco, ale wykonał wiele poprawek, aby go skompilować (musiał obsadzić dziesiątki pustych wskaźników zwróconych przez malloc do ich właściwych typów). Skompilowany, ale nie dał żadnego wyniku, gdy go uruchomiłem. Jakieś pomysły? – aaaidan

+0

Och, jest podobny do lzz. Więc możesz dalej używać lzz :) –

1

Możesz być także zainteresowany funkcją Eclipse "Refactor/Toggle function". Jednak nie zawsze działa prawidłowo.

Powiązane problemy