티스토리 뷰
강의 내용을 무조건 따라하기보다 '어떤 코드가 좋은 코드인가' 부터 먼저 고민봐야 할 것 같다.
요약
- 대체할 수 있는 조건부 컴파일은 템플릿으로 기름칠!
- 매크로는 가급적 사용하지 말고 열거체와 함수로 기름칠!
- 리소스 관리에는 RAII, 기왕이면 스마트 포인터로 기름칠!
- 일회성으로 사용하는 함수는 람다식으로 기름칠!
- 복잡한 타입에는 auto로 기름칠!
- 반복 횟수에 고통받지 말고 범위 기반 for문으로 기름칠!
참고
- 모던 C++ 예제 코드
http://www.github.com/utilForever/ModernCpp
- C++ 핵심 가이드라인
영문 : https://github.com/isocpp/CppCoreGuidelines
한글 : https://github.com/CppKorea/CppCoreGuidelines
예)
기존 C++ 코드
// circle and shape are user-defined types
circle* p = new circle(42);
vector<shape*> v = load_shapes();
for (vector<circle*>::iterator i = v.begin(); i != v.end(); ++i)
{
if (*i && **i == *p)
cout << **i << " is a match\n";
}
for (vector<circle*>::iterator i = v.begin(); i != v.end(); ++i)
{
delete *i; // not exception safe
}
delete p
모던 C++ 코드
// circle and shape are user-defined types
auto p = make_shared<circle>(42);
vector<shared_ptr<shape>> v = load_shapes();
for_each(begin(v), end(v), [&](const shared_ptr<shape>& s)
{
if (s && *s == *p)
cout << *s << " is a match\n";
})
- James Song
'Seminar' 카테고리의 다른 글
TechDays 2015 <프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~> (0) | 2016.02.08 |
---|---|
TechDays 2015 <디버깅, 어디까지 해봤니? 당신이 아마도 몰랐을 디버깅 꿀팁 공개> (0) | 2016.01.22 |
TechDays 2015 <.NET 2015와 C# 살짝 훔쳐보기> (0) | 2016.01.07 |
<Modern C++ Design>과 Mike Acton (0) | 2015.03.11 |
[멜팅팟 세미나 with C++ Korea]변화된 모던 C++, 심층분석 메모 (0) | 2014.12.31 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG
- #EffectiveModernCpp
- #레거시코드
- #프로그래밍심리학
- #ndc
- #마이클페더스
- #techdays2015
- #scottmeyers
- #uwp
- Scott Meyers
- Effective C++
- #cpp
- #세미나
- #팀개발
- #알고리즘
- #클린코드
- #자녀교육
- #cplusplus
- #ModernCPP
- #로버트마틴
- 객체 지향 설계
- #제럴드와인버그
- Effective Modern C++
- 상속
- #코드최적화
- #mva
- #임백준
- 책
- #스콧마이어스
- #build2016
- #csharp
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함