golang - Golang의 함수 인라인

함수 인라인화 조건 함수에 포함 되는 식이 40개 미만 함수 호출・루프・클로져・panic・recover・select・switch 라는 복잡한 것을 포함하지 않는다 출처 인라인화 막기 //go:noinline 라는 pragma를 사용한다. package main func main() { HelloNoInline() } //go:noinline func HelloNoInline() interface{} { return struct{}{} }
더 읽기

Linux How To

네트워크 특정 port에 접속한 네트워크 정보 보기 32452 port에 접속한 네트워크 정보를 보고 싶은 경우 netstat -nap | grep :32452 파일 디렉토리 이름 변경 mv 옵션... 원본 대상 mv 옵션... 원본... 디렉토리 mv 옵션... 디렉토리 디렉토리 파일 path 추가 home/본인아이디...
더 읽기

C++ - 커스텀 Allocator를 사용하는 basic_string을 unordered_map의 key로 사용하는 방법

아래의 코드는 컴파일 에러가 된다. using MyString = std::basic_string< char, std::char_traits<char>, MyAllocator<char>>; std::unordered_map<MyString, int> umap; // 이 부분이 에러 이유는 unordered_map이 필요로 하는 std::hash는 std::hash<std::string>로 정의 되어 있는데 allocator를 특별화한 문자열 타입의 정의가 없기 때문이다. C++17에서는 이 문제를 간단하게 해결할...
더 읽기

C++ - Win32API 실행 파일의 full path 얻기

Win32 API의 ‘GetModuleFileName’ 함수 사용. std::wstring getApplicationFilePath() { wchar_t fileName[MAX_PATH] = { 0 }; ::GetModuleFileNameW(nullptr, fileName, MAX_PATH - 1); return fileName; } 파일의 full path에서 실행 파일 이름만 추출하기 getApplicationFileName() _wsplitpath_s 함수로 디렉토리와 파일 이름을 나눈다. https://technet.microsoft.com/ko-kr/library/8e46eyt7(v=vs.110).aspx std::wstring getApplicationFileName() {...
더 읽기

introselect 알고리즘

.NET 4.5 이상에서 컬렉션의 정렬 알고리즘에서 사용 https://github.com/Microsoft/referencesource/blob/master/mscorlib/system/collections/generic/arraysorthelper.cs
더 읽기

C++ - atomic compare_exchange_weak/strong 함수

출처 C++11 표준 라이브러리의 atomic 조작 함수 compare_exchange_weak와 compare_exchange_strong에 대한 메모. 두 함수 모두 변수의 atomic한 CAS(compare-and-swap) 작업을 제공한다. weak 버전과 strong 버전의 동작 사양은 weak 버전에서는 “교환 가능한 경우라도 CAS 조작 실패 할 가능성이 있다(spurious failure)”가(* 1), strong 버전에서는...
더 읽기