프로그래밍
-
C++11 가변 인자 템플릿의 사용 예프로그래밍/c++ 2014. 6. 29. 14:05
기존 C++에서는 여러개의 인자를 받는 템플릿 함수를 만들때123456789101112131415161718192021222324 void create() { instance = new Type{}; } template void create(T0 arg0) { instance = new Type{ arg0 }; } template void create(T0 arg0, T1 arg1) { instance = new Type{ arg0, arg1 }; } template void create(T0 arg0, T1 arg1, T2 arg2) { instance = new Type{ arg0, arg1, arg2 }; } .. 이런식으로 만드는 경우가 있었다.저런 코드를 C++11부터 추가된 기능인 가변 인자 ..
-
CPU에 따른, 프로그램에서의 효율적 스레드의 수프로그래밍 2014. 5. 23. 05:58
하나의 프로그램에서 멀티 스레드를 사용할 때, [(하드웨어 스레드 컨텍스트 수 * 2) + 1]만큼을 사용하면 효율이 좋다고 한다. C++11에서부터 지원하는 std::thread에 hardware_concurrency()라는 멤버 함수가 있는데 이는 하드웨어의 스레드 컨텍스트 수를 반환한다.(만약, hardware_concurrency()를 사용할 수 없는 경우라면 0 을 반환) CPU 하나에, 코어가 4개 달린 CPU를 사용중이라면 결과는 4가 나온다.(하이퍼 스레딩 같은 기술을 지원한다면 결과가 다를 수 있다.) 출저: http://jacking.tistory.com/1061
-
구글 C++ 스타일 가이드 - 이름 짓기프로그래밍/c++ 2014. 5. 2. 23:57
구글 C++ 스타일 가이드 - 이름 짓기(Google C++ Style Guide - Naming) 1. 일반적인 이름 규칙 함수, 변수, 파일 이름은 설명적이어야 하므로 가급적 축약하지 않는다. 타입과 변수는 명사, 함수는 명령 동사로 쓴다. - 이름 짓기 이름은 가급적 설명적이어야한다. 다음은 좋고 나쁜 예이다. //좋은 예 int num_errors; int num_completed_connections; //나쁜 예 int n; int nerr; int num_comp_conn; - 약어 프로젝트 외에서도 잘 알려진 약어가 아니라면 축약하지 사용하지 않는다. // 좋은 예 int num_dns_connections; // dns는 외부에 많이 알려진 약어이다. openDvdPlayer(); // ..