일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 동아리
- 구글 앱 엔진
- 패턴인식
- BAM
- 고려대학교
- 신경망
- Google App Engine
- 멤버십
- 패턴 인식
- 삼성전자 소프트웨어멤버십 SSM
- 삼성소프트웨어멤버십
- 증강현실
- 삼성
- Neural Network
- SSM
- 인공지능
- NarwalFreo
- 물걸레로봇청소기추천
- 갤럭시탭S8울트라
- 가상화
- Friendship
- 하이퍼바이저
- 신경회로망
- 나르왈프레오
- Python
- 빅데이터
- hopfield network
- Bidirectional Associative Memory
- 물걸레자동세척로봇청소기
- 파이썬
- Today
- Total
정보공간_1
[4기 수원 전낙현] VS 2013 #3 본문
저번 포스팅에 이어 VS 2013 #3에서는 c++11에서 추가된 기능중 visual studio 2012에서는 지원하지 않았지만 visual studio 2013부터 지원하는 6가지의 기능을 3편으로 나누어 연재하겠습니다.
1. Raw String Literals
2. Non-static datamember initializers
3. Default template arguments for function templates
4. Defaulted and deleted functions
5. Delegating constructors
6. Alias templates
Delegating constructors
기존의 C++에서 여러개의 생성자를 가지고 있고 그 생성자가 거의 비슷한 역할을 하는경우 보통 아래와 같이 코드를 작성합니다.
같은 코드를 복사 붙여넣기하는 최악의 경우부터
초기화 함수를 만들어서 조금은 효율적으로 만들거나
코드를 복사 붙여넣기 한것보다 더욱 비효율적인 임시 인스턴스가 생성되었다 소멸되는 최악의 코드가 나오게됩니다.
이것을 해결하기 위하여 C++11에서는 위임생성자를 지원합니다.
위와 같이 사용한다면 성능저하없이 유지보수하기 쉬운 코드가 될것입니다. 또한 개발자의 실수도 줄일 수 있겠죠.
Alias templates
C++에서 using은 매우 다양하게 쓰이고 있습니다.
가장 많이쓰는
using namespace std;
using std::cout;
using std::cin;
등 네임스페이스를 생략하고 쓰고싶을때
혹은 C에서 typedef와 같이
using funcType = void(*)(int);
이렇게 쓸 수 있습니다.
C++11에서는
위와 같이 템플릿에서도 using을 지원하여 좀 더 쓰기편하고 가독성이 좋게 표현할 수 있습니다.
위의 코드에서 v1과 v2는 같은 type을 갖죠.
템플릿과 벡터를 같이 쓸경우에는 저렇게 지저분한 타입이 나올때가 많은데 using을 사용하면 편하게 사용할 수 있을것 같습니다.
참고문헌
1) MSDN, Microsoft, http://msdn.microsoft.com
2) 비주얼 C++ 12의 향상된 표준화 라이브러리, 제이슨 김, 마이크로소프트웨어 2013년 11월 호
3) C++11 Tidbits: Template Aliases, Paolo Carlini , https://blogs.oracle.com
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[4기 광주 박주연] 바이트 데이터 변환 (0) | 2013.12.04 |
---|---|
[4기 광주 박주연] Java Generic 이해 (0) | 2013.12.04 |
[4기 수원 전낙현] VS 2013 #2 (0) | 2013.12.02 |
[4기 수원 전낙현] VS 2013 #1 (0) | 2013.12.02 |
[4기 수원 전낙현] 안드로이드 기반 디바이스의 디지털 포렌식 #2 (0) | 2013.12.02 |