2015-08-24 15 views
5

Używam inteligentnych wskaźników w moim bieżącym projekcie, i wydaje się bardzo uciążliwe, aby pisać długich linii kodu podczas korzystania z nich.Czy to jest złą praktyką wpisywanie inteligentnego wskaźnika?

Bo chciałem mój kod będzie czystsze i łatwiej śledzić zacząłem typedef-ing inteligentnych wskaźników, takich jak:

typedef std::unique_ptr<System> SystemPtr; 

Więc moje pytanie brzmi, czy jest złą praktyką typedef inteligentne wskaźnik?

+1

Niezupełnie ....... – James

+3

Mam współpracownika, który wpisuje i skraca wszystko, ponieważ nie znosi pisania na klawiaturze. Proszę, nie bądź tą osobą. –

+0

Nie mam nic przeciwko pisaniu. Ale wygląda na to, że wpisanie inteligentnego wskaźnika sprawia, że ​​kod wygląda czysto, nie jestem pewien, czy robię to, co trzeba. – Belfer4

Odpowiedz

10

Nie ma w tym nic złego, ale wybór imienia jest okropny. Ktoś czytający, który nie ma pojęcia, czy jest to współużytkowany wskaźnik, unikalny wskaźnik, intruzywny odnośnik zliczający wskaźnik com, czy po prostu surowy wskaźnik do System.

Jeśli naprawdę potrzebujesz zwięzłość,

template<class T>using up=std::unique_ptr<T>; 

jest jeszcze jeden znak w miejscu zastosowania niż planie up<System> i czyni go bardziej jasne, że jest to unikalny wskaźnik, i nie wymaga typedef danego typu . Dodatkowo w niektórych przypadkach prowadzi do kalamburów.

+0

"W niektórych przypadkach prowadzi to do kalamburów." +1 tylko po to. – NRitH

+0

Myślę, że dodanie przyrostka do typedef wystarczy, aby pokazać typ wskaźnika, który jest. Ale odpowiedź jest czysta i nie muszę się martwić o typedefs. – Belfer4

1

Jak już wspomnieli inni, nie ma w tym nic syntaktycznie niepoprawnego. Chciałbym tylko dodać, że konieczność polowania lub polegania na czymś takim jak IntelliSense, aby łatwo znaleźć definicję w większych projektach, może być nieprzyjemna. Programiści polegają na pozostaniu "w strefie", aby wykonać swoją najlepszą pracę. Nawet coś tak prostego jak 60 sekund, aby wytropić typedef, może zepsuć rowek.

Z takich powodów uważam, że w sytuacjach takich jak twoja i ogólnie rzecz biorąc, lepszą praktyką jest niestraszne stosowanie znaków typowych. Powinieneś być w stanie łatwo i szybko znaleźć typ zmiennej przechodząc na szczyt skojarzonego zakresu.

Prawdę mówiąc, Twój typ nie jest zbyt długi (meta-typy wysokiego poziomu mogą mieć wiele linii).

Powiązane problemy