C99의 sizeof와 가변길이 배열

C99 에서는 배열의 사이즈 지정에 변수를 사용할 수 있다. void test1( int n ) { int fixed_array[10]; int varlen_array[n]; printf( "sizeof(fixed_array)==%ld\n", sizeof(fixed_array) ); printf( "sizeof(varlen_array)==%ld\n", sizeof(varlen_array) ); } test1(10); 로 인수를 10으로 해서 호출하면 아래와 같다. sizeof(fixed_array)==40 sizeof(varlen_array)==40 그러나 보통의...
더 읽기

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를 사용하여 크기를 고정...
더 읽기