Duża klasa szablonowa - organizacja kodu

0

Mam klasę szablonową z większą ilością metod (w sumie kilkanaście). Według MSDN zalecaną praktyką w większości przypadków jest zamieszczenie definicji poszczególnych metod w pliku nagłówkowym, razem z deklaracją klasy. Minusem z kolei jest potencjalnie dłuższy czas kompilacji i większy rozmiar pliku wynikowego.

https://docs.microsoft.com/en-us/cpp/cpp/source-code-organization-cpp-templates?view=msvc-160

Wiem, że można sobie przenieść definicje do osobnego pliku (np. *.tpp) i podlinkować do nagłówka, ale to nic nie zmienia w kwestii kompilacji, a moim zdaniem wręcz utrudnia, bo z każdą definicją trzeba jeszcze doklejać szablon, który zresztą na etapie projektowania klasy może się zmienić.

A jak to wygląda z punktu widzenia waszej praktyki? Czy rzeczywiście jest to najlepsze rozwiązanie? Wiem, że kiedyś było słowo kluczowe export, ale się nie przyjęło (większość kompilatorów go nie obsługiwała). Jak dla mnie to trochę dziwne, że w żaden sposób tego jeszcze nie unowocześniono.

2

Jeżeli nie znam docelowych specjalizacji to staram się robić „header-only”. Możesz popatrzeć jak robi to boost np. ale z tego co wiem idą w podobnym kierunku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1