26. 초급++ – move_sementic
L-value와 R-value의 차이?
L-value
address를 가짂 모든 것.
- 이름을 가짂 변수
R-value
address를 가지지 않은 것.
- 이름이 없는 변수.
- 34, “배고파” 등등… 호출핛 때 만들어지는 변수
27. 초급++ – move_sementic
왜 저렇게 구분했을까?
만약 R-Value로 생성되어 Function이 호출되면…
- Function 안에서 데이터가 변경되었을 때
- vi에 바로 적용되어 버립니다.
37. 초급++ – STL Feature
const_iterator support
실제로 큰 차이는 없어 보인다.
38. 초급++ – STL Feature
shrink_to_fit
줄일 수 있음. vector, deque, string
39. 초급++ – STL Feature
단방향 연결 리스트 : forward_list
std::list와 의 차이
int형 1개에 대해서 list는 12바이트, f_list는 8바이트
속도가 발톱만큼 forward_list가 빠르다
그 외는 싱글리스트와 더블링크드 리스트 차이.
40. 초급
>> | auto | using | for | nullptr | brace_init | array
초급++
move_sementic | Lamda | STL Feature
그외
unique_ptr | tuple | bind
41. 그 외 – unique_ptr
auto_ptr을 대체할 놈
autor_ptr은 deprecation됨.
auto_ptr은 복사 표현으로 통해서 move를 구현.
따라서 generic 알고리즘과 함께 사용핛 수 없다.
generic알고리즘은 실제로 복사를 기준으로 만들어짐.
근데 아직 auto_ptr이나 shared_ptr의
좋은 점을 모르겠음…
42. 그 외 – tuple
std::pair의 일반화
아직은 존재 이유를 모르겠다.
…걍 구조체 써라.
45. 정리
못 다룬 게 더 많다.
thread, function, move, unicode support, 등등
아직 컴파일 안 되는 것도 많다.
range_based_for, brace_init, using…
그래도 쓸만한 것은 굉장히 많다.
range_based_for, brace_init, lamda,
move_sementic, STL Feature, Array
move_sementic과 lamda만으로도 행복
성능 업그레이드와 없어짂 노가다 코딩
2010으로 프로젝트를 업그레이드 해 보아요.
46. 레퍼런스
1) Overview of The New C++(C++0x) (Scott Meyers)
2) http://cpp-next.com/archive/2010/10/howards-stl-
move-semantics-benchmark/
3) http://vsts2010.net/
4) http://ikpil.com/695