[The C++ Programming Language에서 발췌] 표준 라이브러리는 시간을 다루기 위한 기능을 제공한다. 예를 들면 뭔가의 시간을 맞추는 기본적인 방법은 다음과 같다. 123456using namespace std::chorono; auto t0 = high_resolution_clock::now();do_work();auto t1 = high_resolution_clock::now();cout
[The C++ Programming Language에서 발췌] 뜻밖에도 타입이나 템플릿에 대해 별명을 도입하는 것이 유용할 때가 많다. 예를 들어 표준 헤더 에는 아마도 다음과 같은 별칭 size_t에 대한 정의가 포함돼 있을 것이다. 1using size_t = unsigned int;;cs size_t란 이름이 붙은 실제의 타입은 구현별 정의 사항이므로, 다른 구현에서는 size_t가 unsigned long일 수도 있다. 별칭 size_t를 쓰면 프로그래머가 이식 가능한 코드를 작성하는데 도움이 된다. 타입의 템플릿 인자와 관련된 타입 별칭은 많은 경우 매개변수화 타입에 의해 제공된다. 예를 들면 다음과 같다. 123456templateclass Vector {public : using value..
[The C++ Programming Language에서 발췌] 템플릿은 임의의 타입의 인자를 임의의 개수만큼 받아들이도록 정의될 수 있다. 그러한 템플릿을 가변 인자 템플릿이라고 부른다. 예를 들면 다음과 같다. 1234567void f() {}templatevoid f(T head, Tail... tail){ g(head); t(tail...);}Colored by Color Scriptercs 가변 인자 템플릿 구현이 핵심은 그것에 인자 리스트를 전달할 때 첫 번째 인자를 나머지와 분리할 수 있다는 점에 주목하는 것이다. 여기서는 첫 번째 인자(head)에 뭔가를 한 다음, 나머지 인자(tail)로 재귀적으로 f()를 호출한다. 생략 부호...은 리스트의 '나머지'를 나타내기 위해 사용됐다. 물론 ..