C++14 - shared_(timed_)mutex가 지원하는 Reader 스레드 수

C++14 표준 라이브러리의 shared_timed_mutex 클래스는 적어도 10000 스레드 이상의 Reader 스레드에서의 공유 lock(shared lock) 동시 획득을 지원한다. 또 동시 획득 가능한 공유 lock 수 상한을 넘은 경우도 공유 lock을 획득 할 수 있을 때까지 Reader 스레드가 대기하는 것을 보증한다. 출처:...
더 읽기

C++14 - recursive_(timed_)mutex의 재귀 lock 상한 수

C++11 표준 라이브러리의 recursive_mutex, recursive_timed_mutex 클래스는 동일 스레드에서의 재귀 lock 획득 횟수의 상한은 미정의로(unspecified) 되어 있다. 단 상한 회수를 넘는 try_lock 조작은 실패하고, lock 조작은 예외를 던지는 것을 보증 한다. 출처: http://d.hatena.ne.jp/yohhoy/20170214/p1
더 읽기

네이티브 모듈의 ABI 호환성 문제 대처

2017년 3월 13일(미국)에 열렸던 ‘Node.js VM Summit’ 에서 Node의 네이티브 모듈의 ABI 호환성 문제에 대해서 회의를 하였다. 회의 동영상 Node의 네이티브 모듈 문제 Node의 네이티브 모듈은 C/C++로 만들었고 V8과 NAN API(Application Programming Interface)에 직접 의존하고 있다. 이들 모듈은 Node.js의 메이저...
더 읽기

std::codecvt_utf8로 wstring을 utf-8 문자열로 변환 하기

std::wstring을 utf-8 문자열로 변환 하는 방법은 아래와 같다. std::wstring wStr = L"우하하"; std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> utf8Conv; auto utf8Str = utf8Conv.to_bytes(wStr.c_str()); wchar_t의 크기는 windows, linux 각각 크기가 다르다. 그래서 만약 크기를 특정 길이로 고정하고 싶다면 wchar_t 대신 char16_t, char32_t를 사용하여 크기를 고정...
더 읽기

Microsoft MVP가 되었습니다

Microsoft MVP 몇 년 전에 2009,2010,2011년 3년 연속으로 Visual C++ 부분 MVP로 선정된 적이 있습니다. 그러나 2012년부터는 MVP 신청을 하지 않았습니다. 이유는 당시에는 MVP 자격 조건이 MS 제품만을 다루고, MS가 운영하는 포럼에 답글 다는 것을 중요하게 여겨서, 커뮤니티 활동을 하다...
더 읽기

C++11 - alignof

개요 alignof()는 지정한 타입이 메모리의 어느 위치에 배치될지를(배치) 얻는 연산자이다. sizeof()와는 다르고 alignof()는 변수에는 사용할 수 없다. 예를 들면 타입 int가 4바이트 경계 위치로 배치되는 시스템이라면 alignof(int)은 4를 반환한다. 문법 alignof(타입)은 지정한 타입의 배치 크기를 반환한다. 반환 값 타입은 std::size_t이다....
더 읽기

C++11 - alignas

개요 alignas()은 컴파일러에 대한 변수를 메모리 상의 특정 위치에 배치(배열) 하도록 요구하는 키워드이다. 예를 들면 4바이트 경계 위치에 배치할 경우 변수는 4의 배수 주소로 배치되고, 8바이트 경계 위치에 배치할 경우 변수는 8의 배수 주소로 배치된다. 문법 alignas()는 변수 선언이나 클래스...
더 읽기

Visual Studio - 자주 사용하는 단축키

문자 검색/치환 Ctrl+F: 문자 검색 Ctrl+H:문자의 치환 직사각형 선택 Alt 키를 누른 상태에서 마우스로 원하는 직사각형 모양의 범위를 만든다. 자동 인덴트(indent) Ctrl+K, Ctrl+D: 파일 전체의 인덴트 조정 Ctrl+K, Ctrl+F: 선택 범위의 인덴트 조정 코드 개요 확장/축소 Ctrl+M, Ctrl+L: 파일 전체의...
더 읽기

Visual Studio - cpplint 사용하기

cpplint ? cpplint는 python으로 만든 C++ 소스 코드가 Google C++Style Guide를 지키고 있는지 검사하는 툴이다. cpplint 설치 python 2.7에서 pip로 설치한다. Visual Studio에 외부 툴로 cpplint를 등록 VS의 메뉴에서 [도구]-[외부 도구]를 선택한다. 아래와 같이 입력한다. VS의 메뉴에서 [도구]를 선택하면 아래와...
더 읽기

2017년 03월 ‘온라인 서버 제작자 모임’ 정기 세미나

한국 MS의 멜팅팟 프로그램 지원을 받고 온라인 서버 제작자 모임 에서 3월 정기 모임을 합니다. 날짜: 3월 30일 (목) 19시 30분 ~ 21시 30분 장소: 토즈 강남점 내용 최흥배: 해외 강연 해설 ‘여기까지 할수 있다! Visual Studio 2015-강화된 C++ 크로스플랫폼...
더 읽기