CPP

포스트: 32|조회수: 0|ORGANIZATION
Items

Posts

32 posts
[C++11] std::tuple의 std::get 함수에 대해 알아보자. (특히 std::get<Type>()에 대해)

[C++11] std::tuple의 std::get 함수에 대해 알아보자. (특히 std::get<Type>()에 대해)

std::tuple은 여러 개의 값을 묶는 고정 크기 C++ 표준 컬렉션이다. std::pair는 2개의 값만 묶는데, 이보다 일반화된 컬렉션이 std::tuple이다. std::tuple은 처음 보면 쓰기 꽤 난감하다. 일단 멤버에 접근하는 멤버 함수가 없다. std::tuple에 접근하는 방법은 std::get을 사용하는 것이다. std::get은 템플릿 함수이다. 거의 같은 내용으로 cv-idntifier 등의 차이 때문에 8개의 오버로딩이 있지만, 큰 차이가 없다. 그 중 간단한 쪽 두 개를 들고왔다. // FUNCTION TEMPLATE get (by index) template

[C++] 흔히 변수로 쓰일만한 이름이지만 STL에서 사용중인 이름들

학교에서 흔히 'sing namespace std; 를 사용하지 말라고 하는 이유로 '다른 이름과 겹칠 수 있어서'를 대는데, 과연 표준 함수들은 얼마나 겹치기 쉬운 이름들을 쓰는 것일까? 한 번 알아보자. 우선, 기준을 정하자면표준 함수(네임스페이스 내부) 또는 클래스일 것사용자가 변수로 자주 쓰거나, 흔히 쓰이는 API에 동일한 이름의 함수가 있을 것 정도. 경험 상 이야기라 대체로 동일한 이름의 함수는 WinAPI이다(...) size size() 함수는 배열 또는 STL Container의 크기를 반환하는 표준 함수이다. next & prev 둘 모두 인자로 반복자와 오프셋 값을 받으며, 반복자를 오프셋만큼 떨어진(next는 뒤로, prev는 앞으로) 위

[C++] 변수를 읽어보자

C++을 어렵게 하는 요소 중에는 변수를 읽는 방법이 난해하다는 점이 있고, 그 비중은 꽤 클 것이다. 변수를 읽는 법은 입문 직후가 아니라 어느 정도 C++을 했다 싶은 사람들의 발목을 잡는다. 입문자는 int*가 무엇인지 모르지만 이건 포인터를 모르는 거지 이를 읽는 방법을 모르는 것이 아닐 것이다. 예를 들어보자. 포인터로 int 타입의 값을 인자로 넘겨받아 확인하고 싶다. 참조하는 값을 변경하고 싶지 않아서 const를 붙이려고 한다. 어떻게 써야 할까? const int * int * const int const * int const * const 정답은 2번을 제외한 전부이다. 결론만을 말하자면, 1번과 3번은 완전히 동일한 타입이고 4번 역시 참조만 목적이면 사용이 가능하다

Windows 10의 테마 컬러 얻기(C++)

Windows 10의 테마 컬러 얻기(C++)

Windows 8부터 테마 색이라는 게 생겼는데(그 이전일 수도 있다), 이름 그대로 Windows 전반에서 색이 들어가는 곳에 통일된 색을 사용한다. 이 색을 어떻게 얻을까? 내가 찾은 방법은 UWP(UniversalWindows Platform)을 사용하는 것이다.UWP 코드는 Microsoft 확장 C++(C++/CLI → C++/CX;현재 명칭) 또는 C#(권장)으로 구현되었기 때문에, nativeC++(C++/CLR)에서는 사용하지 못한다. 혹시라도 사용하는 방법이 있다면 댓글로 남겨주면 고맙겠다. 우선, 테마 색을 얻는 코드를 보자. MSDN에 C#으로 잘 나온다. htt