최신 VC 에서는 localtime을 사용하면 경고(컴파일 실패 되는)가 나온다. localtime_s를 사용해야 한다. include<stdio.h> include<time.h> int main(void) { time_t curTime = time(NULL); struct tm tmCurTime; errno_t error; error = localtime_s(&tmCurTime, &curTime); if (error != 0) { printf("현재 시간을 얻을 수 없다.\n");...
더 읽기
더 읽기
함수 인라인화 조건
함수에 포함 되는 식이 40개 미만
함수 호출・루프・클로져・panic・recover・select・switch 라는 복잡한 것을 포함하지 않는다
출처
인라인화 막기
//go:noinline 라는 pragma를 사용한다.
package main
func main() {
HelloNoInline()
}
//go:noinline
func HelloNoInline() interface{} {
return struct{}{}
}
더 읽기
몇 년전에 웹에 공개된 글을 보고 정리했던 글이다.
더 읽기
네트워크 특정 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() {...
더 읽기