이 글은 C++20 기준으로 작성되었습니다. 준비 Callback 정의 및 Call의 인자 Parameter 지정을 보다 수월히 하기 위해 IDelegate 선언 및 IDelegateArgs 인터페이스를 선언합니다. Delegate.h class IDelegateArgs { }; using IDelegate = void(IDelegateArgs* args); IDelegateArgs 인터페이스 클래스를 상속받아 원하는 형태의 Parameter 클래스를 재선언 합니다. 아래는 IDelegateArgs를 상속받아 재선언한 예시 클래스입니다. SessionDelegateArgs.hpp class CSessionDelegateArgs : public IDelegateArgs { public: ISession* ..
Ubuntu에서 gcc/g++10 기본 패키지로 제공되지만 제대로 사용하려면 몇 가지의 추가 설치와 설정을 해 주어야 합니다. 추가적으로 이 글은, Visual Studio의 Linux C++ 프로젝트에서 원격 빌드 컴퓨터를 사용하고 컴파일러의 버전을 C++20로 사용하려고 할 때, g++ : error : unrecognized command line option ‘-std=c++20’; did you mean ‘-std=c++2a’? 오류를 해결하는 데에도 도움이 됩니다. 먼저 build-essential 패키지를 설치합니다. $ sudo apt install build-essential build-essential 패키지를 설치하면 gcc에 필요한 환경을 함께 설치해줍니다. 다만 이 패키지에 포함된..
CentOS8 (RHEL 8)은 gcc/g++의 8 버전으로 repo에 등록되어있습니다. gcc/g++8에서 C++17까지 사용할 수 있으나, C++ 최신 버전인 C++20을 사용하려면 gcc/g++9를 별도로 설치해 주어야 합니다. (2022년 3월 3일 기준) CentOS8에서 gcc/g++9를 설치하는 방법을 알아보겠습니다. 먼저 패키지를 최신으로 업데이트합니다. $ sudo yum update 업데이트 시도시 Failed to download ... 관련 오류가 발생된다면 아래 글을 참조하세요. https://bundw.tistory.com/86 CentOS8 Failed to download metadata for repo 'appstream' 오류 해결 CentOS8은 2021년 12월 31일..