2012-02-14 12 views
6

Zawsze odczuwam ból po zmianie z C# lub Pythona z powrotem na C++ i spełnieniu separacji .h i .cpp.Narzędzie do automatycznego oddzielania nagłówka C++ i implementacji

Więc pomyślałem, że może istnieje narzędzie, które na etapie wstępnej kompilacji może pobrać nagłówek (plik o specjalnym rozszerzeniu) i podzielić go na .h i .cpp?

Więc jeśli oryginalny plik tak:

class MyClass 
{ 
public: 

    void HaHaHa() 
    { 
     //some logic 
    } 
} 

I wynik byłby jak i .h .cpp plików:

//.h 

class MyClass 
{ 
public: 

    void HaHaHa(); 
} 

// .cpp 

#include "MyClass.h" 

void MyClass::HaHaHa() 
{ 
    //some logic 
} 

Niektóre googling nie pojawił się gotowy do korzystania z narzędzi . Ale jestem pewien, że to nie jest nowy pomysł i takie narzędzia powinny istnieć.

P.S. Wiadomo, że np. Visual Assist X i VIM mają narzędzia do obsługi rozdzielania .h i .cpp przy mniejszym bólu. Ale pytam o możliwość posiadania kodu w jednym pliku i rozdzielenie go automatycznie w ramach procesu kompilacji.

+2

A dlaczego nie umieścić całego kodu w plikach h? Wolne kompilacje? –

+0

Moduły będą prędzej (lub później) dojdą do C++, zobacz: http://stackoverflow.com/questions/3596147/modules-in-c0x to rozwiąże to z nadzieją. – tauran

+2

"Powolne kompilacje" - jako przykład. Powolne parsery autokomplacji są jeszcze gorsze. Albo czasami piszę jakąś bibliotekę i nie chcę, żeby była "open source". Ogólnie rzecz biorąc, C++ zaprojektowano tak, aby miało to oddzielenie. Z tego punktu widzenia posiadanie takiego narzędzia jest bardzo jasnym rozwiązaniem. – MajesticRa

Odpowiedz

4

To narzędzie może pomóc: http://www.lazycplusplus.com/

+0

Dziękuję! To naprawdę wygląda, o co prosiłem! Teraz nadszedł czas, aby sprawdzić to w akcji ... – MajesticRa

+0

Biorąc pod uwagę, że parser został wykonany ręcznie, jestem sceptyczny co do jego zdolności do parsowania prawdziwych instrukcji C++: szablony, typy funkcji, ... –

+0

czy próbowałeś? – vulkanino

2

myślę, że będzie o niej do tyłu: chcesz zapisać plik header , bez implementacji, przed napisaniem kodu. To, co byłoby dobre, to narzędzie, które odczytałoby plik nagłówkowy i wygeneruje kod konspektu dla implementacji: z przestrzeniami nazw, klasami zagnieżdżonymi i takimi, tylko takie wrappery mogą być dość szczegółowe. Ale najbliżej widziałem jest Rational Rose, który zaczyna się od (wysoce) opatrzonego adnotacjami schematu ULM, i generuje zarówno nagłówek, jak i podstawową część implementacji. To bardzo dobre narzędzie. — Używam go, gdy tylko jest dostępny. —, ale jest trochę za drogie dla użytkownika domowego, a prawdopodobnie nawet dla małych korporacji .

0

Pod Windows Visual Assist X przez Whole Tomato robi that sort of thing. Nie zautomatyzowane, chociaż nie sądzę.

+0

@Majestic - Nie jest najmniej oczywiste, co masz na myśli przez VAX http://pl.wikipedia.org/wiki/VAX –

Powiązane problemy