C++17 - 복수의 using 선언 시 컴마 구분 사용

간결한 코딩을 위해 네임 스페이스를 생략하고 싶다면 using 선언을 사용한다 std::cout << "hello"; using std::cout; cout << "hello"; 그러나 아래와 같은 경우는 using std::cout; using std::endl; cout << "hello" << endl; 로 두 번이나 using 선언을 해야 한다. C++17에서는 위의...
더 읽기

C++17 - hardware_destructive_interference_size, hardware_constructive_interference_size

출처 C++ 17 표준 라이브러리 헤더에 추가 되었다 hardware_destructive_interference_size False-Sharing 발생을 방지하기 위해 필요한 최소 메모리 주소 거리. 2개의 변수를 서로 다른 캐시 라인에 싣기 위해 얼라이먼트 정보로 사용한다. hardware_constructive_interference_size 동일한 캐시 라인에 올리는(True-Sharing) 최대 개체 크기. 복수 변수 접근의...
더 읽기

C++17 - 람다식에서 *this의 복사 캡쳐

C++11에서 람다식의 캡쳐 리스트에 this를 지정하면 이 람다식이 속하는 클래스 오브젝트가 참조로 캡쳐된다. 비동기 처리나 병렬 처리에서 오브젝트 수명 관리를 간단하게 하기 위해 this를 참조가 아닌 복사로 캡쳐해야 하는 경우가 있다. 이 때 C++17에서 새로 생긴 *this 를 사용하여 클래스...
더 읽기

golang - math/rand와 crypto/rand

출처 Go 난수 생성에 관한 표준 패키지는 math/rand와 crypto/rand의 2가지가 있다. 각각 math/rand은 약한 난수에 crypto/rand 강한 난수인데 강한 난수 쪽이 반드시 좋다는 것은 아니고, 특성 및 성능의 차이에서 유스 케이스가 나누어진다. math/rand https://golang.org/pkg/math/rand/ 일반적으로 난수를 사용하는 경우 math/rand를 이용한다....
더 읽기