Próbowałem szukać, ale nie widziałem podobnego pytania (ani to, albo moja terminologia wyszukiwania była niepoprawna - jeśli tak, nie krępuj się).
Jestem zagorzałym użytkownikiem SO i zauważam, że w dyskusjach i odpowiedziach jest wiele odniesień do standardu C ++ - i muszę przyznać, że nigdy nie czytałem tego konkretnego dokumentu, język sprawia, że bolą mnie oczy ... , pytanie brzmi: czy programista C ++ może naprawdę kodować życie, nie czytając nigdy tego dokumentu? Czy to naprawdę ważne dla nas zwykłych śmiertelników, którzy nie zajmują się pisaniem kompilatorów?
Odpowiedzi:
Nie - bez tego możesz sobie dobrze poradzić
Będziesz jednak miał znacznie głębsze zrozumienie, jeśli poświęcisz trochę czasu, aby się tego nauczyć. Być może skorzystaj z referencji z tych pytań, które Cię niepokoją, i ucz się naraz małego kawałka.
źródło
Jeśli chcesz kłócić się o semantykę języka i standardese, standard jest bardzo ważny. (Nie mam na myśli to całkowicie lekceważeniem.) Jeśli tylko chcesz dostać pracę wykonaną w tym językowych (w porównaniu z językiem), to jest o wiele mniej.
Standard może zawierać przyzwoite odniesienie do standardowej biblioteki (nie tyle w przypadku samego języka), kiedy będziesz się z nim czuć swobodnie, ale waham się, czy polecić korzystanie z niego w ten sposób. Wydaje się, że większość ludzi radzi sobie lepiej z innymi materiałami. To powiedziawszy, najczęściej sięgam do standardu, kiedy muszę coś sprawdzić w stdlib.
Jednak czytanie projektów i dokumentów komitetu jest jednym ze sposobów, aby być na bieżąco z C ++ 0x - w rzeczywistości jest to obecnie jeden z niewielu sposobów.
W przypadku SO i innych forów waham się zacytować standard, chyba że wydaje się, że plakat wyraźnie i zdecydowanie skorzysta - być może poprosili o to lub myślę, że domyślnie tego oczekują. W większości przypadków, a zwłaszcza w przypadku programistów początkujących w C ++, cytowanie go zwykle nie pomaga.
źródło
Powinieneś mieć go do dyspozycji w celach informacyjnych, ale nie sądzę, żeby ktokolwiek oprócz jego autorów przeczytał całość ... nawet jeśli tak (pracują w grupach skupiających się na obszarach, więc wątpię w to).
Powodem, dla którego powinieneś go mieć, jest to, że czasami na pytanie dotyczące poprawności kodu można odpowiedzieć tylko poprzez odwołanie się do standardu.
źródło
Prawdopodobnie ważniejsze jest, aby wiedzieć, gdzie jest standard i wiedzieć, kiedy sprawdzić.
Jeśli nic więcej, należy okresowo sprawdzać, aby upewnić się, że przestrzegasz najnowszej wersji i nie dopuściłeś do zmiany kodu.
źródło
W dużym zespole na ogół powinieneś mieć jedną (ale zwykle nie więcej) osobę, która zna standard co najmniej dość dobrze, aby mógł on robić takie rzeczy, jak rozstrzyganie wszelkich argumentów / pytań dotyczących takich rzeczy, jak to, czy określony kod jest zgodny z wymaganiami standardu.
Realistycznie jednak odpowiedzi te muszą zostać złagodzone osądem i doświadczeniem. (Obecny) standard mówi, że
export
jest słowem kluczowym i mówi, co robi. W rzeczywistości po prostu nie działa w ten sposób z większością kompilatorów. Podobnie, w wielu przypadkach, jeśli masz trzy osoby nie zgadzając się o jakiegoś konkretnego kodu i co średnia może powiedzieć o tym, że może być oznaką, że kod może wymagać przepisania być bardziej proste.W tym samym czasie większość zespołów wykona większość pracy na jednej platformie, a posiadanie standardowego (i kogoś, kto jest przynajmniej dość dobrze z nim zaznajomiony), aby sprawdzić, czy to, co robisz, nie jest zbyt ściśle związane z tą platformą, z pewnością może być przydatnym.
źródło
Zarabiam na chleb jako programista C ++ w sumie od około 4 lat, nie czytając standardu. W rzeczywistości przez pierwsze dwa lata nie czytałem nic więcej poza C ++ Primer autorstwa Stan Lippman i artykuły MSDN. Jest więc możliwe - obawiam się, że większość osób tworzących kod C ++ nawet nie przeczytała tak podstawowych dzieł, jak Effective C ++ i in. które sam odkryłem dopiero później.
IMHO, aby być dobrym programistą C ++, należy zrozumieć wewnętrzną logikę języka (ów) (jak zauważa Scott Meyers, C ++ dotyczy około 4 różnych języków) oraz typowe idiomy i pułapki, i zawsze być gotowym do dalszego uczenia się. Czytanie wątków na temat SO może wiele nauczyć o przypadkach narożnych, w których z kolei warto przeczytać odpowiednie części normy, jeśli ktoś naprawdę chce głębiej kopać. Ale przeczytanie całości jest prawdopodobnie rzadko konieczne dla większości z nas.
źródło
„Znajomość standardu” jest kwestią stopnia i niekoniecznie oznacza zapamiętywanie oryginalnego dokumentu.
Dokument normatywny został opracowany tak, aby był autorytatywny - niekoniecznie dostępny. Istnieje wiele jednoetapowych źródeł, które są znacznie bardziej dostępne. To prawda, jest w tym trochę chińskich szeptów, ale rzadko jest to duży problem - z pewnością na poziomie usuniętym o jeden krok.
Pełne ujawnienie - muszę to powiedzieć - nigdy nie przeczytałem standardu. Chociaż zapewne postaram się uzyskać pełny dokument w C ++ 0x po jego sfinalizowaniu.
EDIT oczywiście, jeśli Stroustrup wyda nowe wydanie „The C ++ Programming Language”, mogę się na to zgodzić ponownie.
źródło
Kiedy programowałem w C ++, często odwoływałem się do standardu językowego, aby uzyskać informacje o standardowych funkcjach biblioteki. Standardowa biblioteka C ++ jest dość duża i uznałem, że standard językowy jest najwygodniejszym źródłem.
źródło
Mógłbym przysiąc, że już odpowiedziałem na to pytanie, ale nie mogę go znaleźć. Zasadniczo C ++ różni się od Java, ponieważ ma zawierać dziury w specyfikacji, które inne specyfikacje platformy mogą wypełnić (np. POSIX, specyfikacja ABI architektury lub kompilator). Dlatego odpowiadając na pytania w witrynach takich jak StackOverflow, często pojawia się specyfikacja wskazująca, że to, że coś działa na jednym kompilatorze, nie oznacza, że działa wszędzie. Innymi słowy, wiele powodów odwoływania się do konkretnych specyfikacji podczas pracy z C ++ polega na dokładnym wyjaśnieniu, jak przenośne jest określone użycie tego języka.
źródło