std::visit와 std::variant을 이용한 오버로딩

이 내용은 대부분은 https://www.bfilipek.com/2018/09/visit-variants.html 을 참조하였습니다. std::variant 클래스는 간단히 정의하자면 안전한 union 버전이라고 볼수있다. union의 최대의 단점은 타입의 값을 집어넣었을때 해당값이 int,string 알수 없다.이 단점을 회피하기위해 C++ 17에는 std::variant 클래스가 추가되었다.자세한 설명은 보자. http://occamsrazr.net/tt/323 https://en.cppreference.com/w/cpp/utility/variant std::visit함수는  std::variant 클래스에 담겨있는 타입에 맞는 operator을 호출을 해주는 함수이다. 자세한건 아래의 코드를 보자 1 2 더보기…

Visual Studio C++ 17 사용하기

Visual studio 2017에서 C++ 17문법을 쓰게 되면 컴파일이 아래와 같은 에러가 출력된다. Severity Code Description Project File Line Suppression State Error C1189 #error: class template variant is only available with C++17. ConsoleApplication1 c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.14.26428\include\variant 16 이는 말그대로 Visual Studio 2017에서 아직 C++17문법이 가능하지않다는 것이다. 하지만  en.cppreference.com 에 더보기…

WinApi Handle이란

WinApi를 하게 되면 주로 만나는 단어가 Handle이다. 도대체 이건 무엇일까? 라고 책을 봐도 이거에 대해 명확하게 설명이 되어있지 않다.  또한 MSDN에서도 다음과같은 내용말고는 없다. An object is a data structure that represents a system resource, such as a file, thread, or graphic image. An application cannot directly access object data or the 더보기…

Windows 10에 WSL을 이용하여 Linux 설치하기

마이크로소프트 덕분에 WIndows 10부터 Linux를 정식 설치할수 있게 되었다. 이를 WSL(windows subsystem for linux)이라고 한다. WSL은 리눅스를 그냥 일반 프로세스처럼 돌아가게 된다. 그래서 vm(가상머신에 비해 매우 빠르다.) 아쉽게도 32비트는 설치가 안되고 64비트에만 설치가 가능하다. 설치 방법은 다음과 같다. 1.PowerShell이나 cmd를 관리자로 키고 다음과 같이 켜준다. 아래 커맨드는 WSL기능을 켜주는 키워드이다. 더보기…

산업기능요원의 4주차 훈련소의 팁

2018/8/6일날 논산훈련소에 입대를 하였고 금일 수료하였습니다.   곧 가시는 분들을 위해 간단한 팁들을 소개해드리려고 합니다. 먼저 준비물부터 소개드리겠습니다. 손목시계(필수) 훈련소의 군대는 시간이 가장중요합니다.  몇시까지 밥 먹으러 와야하는지, 몇시까지 샤워를 해야하는지 방송통제로 알려줍니다. 그러므로 시계를 자주볼수밖에 없습니다. 복도에 시계가 있지만 각 방마다는 시계가 없어 손목시계를 챙겨가는걸 추천합니다. 신발깔판(무필요) 예전의 전투화가 많이 딱딱하여 더보기…