네트워크 특정 port에 접속한 네트워크 정보 보기 32452 port에 접속한 네트워크 정보를 보고 싶은 경우 netstat -nap | grep :32452 파일 디렉토리 이름 변경 mv 옵션... 원본 대상 mv 옵션... 원본... 디렉토리 mv 옵션... 디렉토리 디렉토리 파일 path 추가 home/본인아이디...
더 읽기
출처 클래스의 같은 값 비교, 해시 함수가 필요 #include <unordered_map> class Point{ public: int x, y; Point(){} Point(int x, int y):x(x),y(y){} bool operator==(const Point &left) const {return this->y == left.y;} }; namespace std{ template<> class hash<Point>{ public: size_t operator ()...
더 읽기
더 읽기
컴파일 시에 정해진 조건 C의 bool 값에 의해 타입 A 혹은 B를 선택하고 이 타입의 변수를 선언하고 싶은 경우 의사 코드는 아래와 같다. if (C) { A x; } else { B x; } 이것을 구현하기 위해 std::conditional을 사용하여 typename...
더 읽기
아래의 코드는 컴파일 에러가 된다. 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에서는 이 문제를 간단하게 해결할...
더 읽기
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() {...
더 읽기
.NET 4.5 이상에서 컬렉션의 정렬 알고리즘에서 사용
https://github.com/Microsoft/referencesource/blob/master/mscorlib/system/collections/generic/arraysorthelper.cs
더 읽기
출처 C++11 표준 라이브러리의 atomic 조작 함수 compare_exchange_weak와 compare_exchange_strong에 대한 메모. 두 함수 모두 변수의 atomic한 CAS(compare-and-swap) 작업을 제공한다. weak 버전과 strong 버전의 동작 사양은 weak 버전에서는 “교환 가능한 경우라도 CAS 조작 실패 할 가능성이 있다(spurious failure)”가(* 1), strong 버전에서는...
더 읽기
C++17로 표준으로 구현. 헤더 파일 1개로 구성. 저장소: https://github.com/sailormoon/flags 라이센스: 퍼블릭도메인(완전 마음대로 사용 가능) 예제 #include "flags.h" void ParseConfig(int argc, char* argv[]) { const flags::args args(argc, argv); const auto ip = args.get<std::string>("ip"); if (!ip) { std::cerr << "No IP. :("...
더 읽기
몇 년전에 웹에 공개된 글을 보고 정리했던 글이다.
더 읽기