C++ - 4개의 auto, 4개의 C++ 규격

원문 2020년에 출시될 예정인 「C++20」에서는 아래와 같은 함수 템플릿을 쓸 수 있다. cpp20.cpp template <auto N> auto func(auto x) { auto r = N + x; return r; } // 호출 예 assert( func<1>(0.5) == 1.5 ); 이 글에서는 C++...
더 읽기

C++ - Boost.Asio에서 Boost.Chrono 베이스의 타이머 사용

Boost 1.49.0 버전에서 Boost.Chrono 베이스의 타이머가 도입 되었다. basic_waitable_timer : 클락 전환용 system_timer : system_clock용 타이머 steady_timer : steady_clock용 타이머 high_resolution_timer : high_resolution_clock용 타이머 예제 코드 #include <iostream> #include <boost/asio.hpp> #include <boost/asio/steady_timer.hpp> namespace asio = boost::asio; namespace chrono = boost::chrono;...
더 읽기

C++17 - shared_ptr의 참조 카운트와 data reace

C++17 표준 라이브러리에서는 스마트 포인터인 std::shared_ptr의 unique 멤버 함수는 비추천이 되었다. 상위 호환이 되는 use_count 멤버 함수는 잔존하지만 스레드 간 동기에는 관여하지 않는다는 요건이 명확화 되어서 멀티스레드 실행에서는 반환 값은 근사(approximate)가 된다는 취지의 Note가 추가된다. shared_ptr 참조 카운트를 이용한 스레드...
더 읽기

Rust - conrod을 이용한 GUI 프로그래밍

출처 conrod는 piston라는 게임 엔진을 개발 중인 곳에서 만들고 있는 Rust 정품의 GUI 라이브러리이다. widget 구성과 관리, widget에 대한 이벤트의 전파 등 기본적인 기능을 담당할 수 있다. 그러나 실제의 렌더링이나 OS에서 행사의 수취는 conrod는 conrod에 마련된 렌더링 용의 glium(OpenGL), 이벤트...
더 읽기

C++ - 배치파일을 사용하여 원격 디버깅 할 때 IP 주소 변경 및 설치, 설정 등등 한방에 하기

출처 방법 아래와 같은 배치 파일을 만든다. 하고있는 것은 아래와 같다. IP 주소를 고정으로 세팅(여기에서는 192.168.1.111 로 하고 있다) 폴더 공유를 활성화 한다 “응용 프로그램 및 안전하지 않은 파일의 시작” 설정을 변경 (경고 창을 내지 않는다) 바탕 화면에 “test” 폴더를...
더 읽기

Rust - GUI의 Windows 표시하기

출처 기본적으로 conrod_glium/examples/hello_world.rs 를 참고로 만들었다. 다만 이 샘플 코드는 여러가지 처리가 들어 있어 단순히 Window를 표시하는 것 이상의 일을 하고 있어서 Window를 표시만 하는 최소한의 코드를 모색하였다. 1. Project 작성 우선 실행 프로그램을 만드는 Project의 모델을 만든다. 이름은 rust_gui...
더 읽기

IOCP 프로그래밍 tutorial

IOCP 프로그래밍을 배울 때 사용할 자료로 IOCP 프로그래밍 tutorial을 만들었다. jacking75/edu_cpp_IOCP (도움이 되었다면 Star 부탁합니다 ^^) 아주 간단한 IOCP용 에코 서버에서 시작하여 10단계로 나누어서 기능을 확장하면서 채팅 서버를 만들어 가면서 IOCP 프로그래밍 방법을 배운다. 이 자료로 IOCP 공부할 때 꼭...
더 읽기