본문 바로가기

[c++] C++14 형식연역 들어가기 C++에서 형식연역에서 다룰려고 한다. 형식연역은 미정인 형식이 호출 시점에 형식이 입력되는 값에 의해 결정되는 작업을 말한다. 형식연역은 형식추론이라고 한다. 즉, 주변 상황에 따라 형식을 추론해서 결정한다는 의미이다. 너무 복잡할 수 있지만 생각보다 단순하다(?). 작성자: ospace114@empal.com, http://ospace.tistory.com/ 템플릿 형식연역 일반적인 템플릿 함수 선언에 대한 형식을 살펴보자. template void f(ParamType param); f(expr); T로 표현되는 ParamType은 param 인자에 대한 형식이다. 그리고 함수 f()을 호출할 때 expr로 수식이 입력된다. 입력되는 값에 따라서 T의 형식을 결정하는 작업이 형식연역이다. .. 더보기
[c++] C++11 보편참조 사용하기 들어가기 보편참조는 C++에서 왼값 참조와 오른값 참조를 받을 수 있는 참조이다. 그러나 특수한 조건에서만 활성화되므로 잘 작동하는 것처럼 보여도 의도한대로 동작하지 않을 수 있다. 보편 참조는 템플릿 또는 auto을 사용하는 방법이 있다. 지금부터 보편 참조에 대해서 알아보자. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 템플릿 활용 보편 참조를 사용하기 위해서는 템플릿 구조를 가져야 한다. 일반적인 형태는 아래와 같다. template void f(T&& val) { cout 더보기
[c++] 오른값(r-value) 참조 이해하기 들어가기 C++11부터 포함된 저의 머리를 아프게 만든 오른값(r-value) 참조에 대해 살펴볼려고 한다. 실무에서 c++을 쓸 기회가 없어서 신경쓰고 있지 않다가 최근에 여유가 생겨서 한번 정리해 보았습니다. 저처럼 오른값 참조에 이해가 잘 안되는 시는 분에게 도움되었으면 하네요. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 왼값(l-value)과 오른값(r-value)??? 거칠게 말하면 값을 할당하는 등호 기준으로 등호 왼쪽이 왼값이고 등호 오른쪽이 오른값이다. int n = 10; 위의 예에서 보면 n은 왼값이고 10은 오른값이다. 그래서 일반적으로 오른값이 왼값에 할당하게 된다. 그렇기 때문에 오른값을 왼값 위치에서 사용할 수 없다. 다른 말로.. 더보기
[C++0x] 람다식 들어가기 최근 C++의 표준인 C++0x 람다 함수가 추가되었다. 람다식 또는 람다함수는 기존 함수와 동일하다. (이후 람다함수) 단지 다른 부분은 익명(anonymous) 함수일 뿐이다. 익명이라는 것은 함수 명이 없다는 것이기에 기존 함수 선언과 같이 사용할 수 없을 뿐이다. 이 익명함수은 다른 언어에서도 많이 사용하고 있고 아주 유용하게 사용되고 있다. 작성: http://ospace.tistory.com/,2012.04.27 (ospace114@empal.com) 기본 기본 형은 다음과 같다. [] {};[]가 람다 삽입자(Lamda-introducer)이며, 뒤에 {}은 함수 블록과 동일하다. 삽입자라고 하는 이유는 선언에 의해서 다른 곳에서 재사용하기 위한 것이 아니라 그곳에만 삽입되어 사용되.. 더보기
[c/c++] 구조체 복제에 대한 이야기 가지고 있는 자료을 똑같은 복제본을 만들어야 될때는 매우 많다. 수십가지 데이터 혹은 수십개의 트리로 구성된 구조체를 일일히 하나씩 값을 넣는 다는 것은 곤혹스러운 일이 아닐 수 없다. 다음은 구조체에 대한 것으로 구조체를 복사하는 것에 대한 내용을 다루겠다. 작성자: ospace (ospace114 at empal.com) ospace.tistory.com/ 전형적인 구조체 복제 전형적인 구조체 복제 사용법은 다음과 같다. struct tag_Sport { TCHAR* pName; TCHAR pPlayer[10]; int score; }; int main() { tag_Sport soccer0 = {NULL, _T("Ospace"), 0}; tag_Sport soccer1; TCHAR name[] = .. 더보기

반응형