효과적인 C ++는 여전히 유효합니까?


139

이 포스트 에서 것부터 Effective C ++ 라는 책을 읽기 시작했습니다 .

그러나 이제 C ++ 11로 인해 많은 새로운 기능이 있으며 몇 가지 모범 사례가 변경되었으므로 실제로 좋은 아이디어인지 확실하지 않습니다. C ++ 11의 출현으로 Effective C ++에 포함 된 조언이 더 이상 사용되지 않습니까? 그렇다면 어떤 주제를 피해야합니까?


4
저자는 기사 scottmeyers.blogspot.co.uk/2013/01/… 에 약간의 의견을 달았 으며 사이트의 다른 사람들도 기본적으로 그렇습니다. 그러나 고려해야 할 것이 더 있습니다.
jcoder

2
pearson.ch/1471/9780321334879/… 목차를 보십시오 . 많은 항목이 여전히 유효하지만 일부는 r- 값 참조 및 기타 새로운 것으로 개선 될 수 있지만 전체적으로 여전히 효과적입니다.
Zeta

이 질문은 SO에 적합하지 않습니다. (1) 질문 한 내용이 해당 질문에 포함되어 있지 않으며 오프 사이트 리소스에 있으며 링크되어 있지도 않습니다. (2) 책의 각 권장 사항을 다루는 것은 별도의 답변입니다.이 경우 목록 질문이며 너무 많은 답변이 필요하거나 단일 답변이 전체 책을 논의해야합니다.이 경우이 질문은 너무 광범위합니다. 즉, 단일 권장 사항에 대해 동일한 질문을하는 것이 좋습니다.
Ben Voigt

2
(1) 나는 SO에서 가장 인기있는 질문 중 하나에 언급 된 책을 언급하고 있습니다. (2) 괜찮은 불만이지만 거의 모든 질문으로 넓을 수 있습니다. 또는 원하는만큼 좁을 수 있습니다. 나는 대답이 꽤 좋으며 SO의 대부분의 질문보다 훨씬 좁다 고 생각하므로 자세한 목록이 필요하다고 생각하지 않습니다. 주제 외 : "누구든지 내 정수의 성능을 std :: string 코드로 이길 수 있습니까?"로 시작하는 질문이있는 사람을 추측하십시오.
German Capuano

답변:


93

Scott Meyers 자신이 자신의 블로그에서 이에 대해 말한 내용

유효 C ++의이 C ++ 0x 이전 버전의 정보와 조언이 관련성이 있는지 궁금해 할 수 있습니다. 나는 그것을보고 기쁘게 생각합니다. 놀랍게도 사실입니다. C ++ 0x의 세부 사항에 거의 2 년이 걸렸지 만이 책의 목차를 C ++ 0x를 염두에두고 검토하면서 약간 신음 할 것으로 예상했습니다. 분명히 일부 항목은 부적절합니다. 그러나 내가 찾은 조언은 소리가났다. C ++ 0x 개발자는 const, enum 및 inline을 선호해야합니다. #defines(항목 2)? 그들은해야. 예외가 소멸자를 떠나지 못하게해야합니까 (항목 8)? 확실히. 자원을 관리하기 위해 개체를 사용해야합니까? 데이터 멤버를 비공개로 선언 하시겠습니까? 가상 기능의 대안을 고려하십니까? 템플릿에서 매개 변수 독립 코드를 인수로 사용 하시겠습니까? (항목 13, 22, 35 및 44) 예, 예, 예! 필자의 목표는 항상 효과적인 C ++의 목차가이 책의 조언을 요약하는 것이 었으며, 그 요약은 "전통적인"C ++ 개발과 마찬가지로 C ++ 0x 개발에도 적용 할 수 있습니다. C ++ 0x는 더 큰 언어이며 어떤면에서는 다른 언어이지만 "구"C ++를 효과적으로 사용하기위한 핵심 기술도 C ++ 0x를 효과적으로 사용하기위한 핵심입니다.

그렇다고이 유효 C ++가 C ++ 0x와 완벽하게 일치한다는 것은 아닙니다. 이 책에서는 C ++ 0x의 새로운 기능에 대해서는 다루지 않으므로 해당 기능을 효과적으로 사용하는 방법에 대한 항목이 없습니다. C ++ 0x 효과적인 C ++은 분명히 작업을 이동하고, 초기화를 균일하게하고, 람다 식을 다루는 데 헌신 한 항목을 가지고 있으며 동시성 API를 효과적으로 사용하는 방법에 대한 전체 장이있을 것입니다. 이러한 책에는 또한 자동 변수, 범위 기반 for 루프, 동급 기본 이니셜 라이저 및 때때로 가변적 템플릿을 사용하는 것과 같은 다른 예가 포함됩니다. 이 책이 C ++ 0x에 대한 지원이 부족한 한, 오류는 커미션이 아니라 누락 된 오류입니다.

업데이트 : 새로운 제목 Effective Modern C ++ 는 2014 년 11 월부터 O'ReillyAmazon (및 Google이 제공 할 수있는 다른 많은 제품) 에서 판매되었습니다 .


45

예, 확실히 읽을 가치가 있습니다. 있습니다 : 스콧에 작동하는지 새 책 효과적인 C ++ (11) (11) 코드 만 C ++에있는 집중은. 효과적인 C ++는 여전히 매우 관련, 새로운 책으로 대체되지 않습니다. 그것을 읽고, 읽고, 즐기십시오 :)


1
나는 책들이 서로 쌓여있는 것을보고, 효과적인 C ++는 중요한 토대입니다. 둘 중 하나만 읽으면 유효 C ++ 여야합니다. 효과적인 Modern C ++는 훨씬 난해하다 (그리고 솔직히 말하면 C ++의 대부분은 '현대적인'것과는 거리가 멀다).
Andy Krouwel

21

하나,이 책은 물론 C ++ 03에도 유효합니다.

둘째, Meyers는이 문장을 읽는 시점에 따라 효과적인 C ++ 11을 쓰고 있습니다.

셋째, 일반적으로,이 책의 요점은 여전히 ​​유효합니다. C ++은 여전히 ​​안전보다 속도를 선호하며 Effective C ++의 많은 문제 가이 문제를 해결합니다.

내가 유효하지 않을 것으로 예상 되는 유일한 유형은 "이 작업을 수행하지 말고 대신 수행하십시오"라는 것입니다. "이 작업을 수행하지 마십시오"는 여전히 유효합니다. 그러나 C ++은 몇 가지 문제를 해결했을 것입니다. 특히 C ++ 11에는 Meyers가 독자에게 Boost를 참조하는 많은 기능이 포함되어 있으므로 boost 사용에 대한 권장 사항은 더 이상 사용되지 않습니다.


1
물론 tr1믿기 ​​때문에tr1 그가 언급 한 모든 요소가 C ++ 11 표준으로 만들었다 고 .
Kyle Strand
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.