C++ - Boost 타이머 취소하기

출처 타이머를 다시 이용하지 않는 경우 상태 변수를 추가하지 않고 취소를 알 수 있다. #include <iostream> #include <boost/asio.hpp> #include <boost/asio/steady_timer.hpp> int main() { using namespace boost::asio; io_service io_srv{}; steady_timer timer{io_srv, std::chrono::nanoseconds{1}}; timer.async_wait([&](boost::system::error_code ec) { if (ec || steady_timer::clock_type::now() < timer.expires_at())...
더 읽기

서버 네트워크 관련 오픈소스 라이브러리

Informer - 텔레그램 대규모 모니터링 봇 matrix - 탈중앙화 방식의 오픈소스 실시간 커뮤니케이션 네트워크 Matterbridge - 다양한 채팅프로토콜들의 브릿지 라이브러리 (일어) 프로젝트 커뮤니케이션 툴 『Rocket.chat』&bot
더 읽기

C++ - split, join, replace_all, brent_find_minima

출처 split 지정한 구분 문자로 문자열을 분할 할 때는 boost::algorithm::split 함수를 사용한다. 얻어진 결과는 지정한 컨테이너에서 받는다. 구분 문자인지 판정하는 것은 boost::is_any_of를 사용한다. 아래 예는 문자열을 + 로 구분하고 있다. split(plus_split_s, s, [](char c){return c == '+';}); #include <bits/stdc++.h> #include...
더 읽기

C++ - boost::multiprecision::cpp_int

출처 다배수 길이 정수를 다룰 때는 boost::multiprecision::cpp_int를 사용한다. #include <bits/stdc++.h> #include <boost/multiprecision/cpp_int.hpp> using namespace std; using boost::multiprecision::cpp_int; int main() { cpp_int a, b; cin >> a >> b; cout << (a > b ? "GREATER" : (a == b ?...
더 읽기

C++ - boost::irange

출처 정수의 범위를 사용하려면 boost::irange 함수를 사용한다. 범위로서 [0, n) 을 지정하고, 제 3인수로 단계 폭을 2로 지정하고 있다. (제 3 인수를 생략하면 단계 폭은 1이 된다) 이것에 대해 range-based for 문을 작성할 수 있으며, Python의 for 문과 비슷하다. #include...
더 읽기

WSL 글 정리 및 관련 글 링크 모음

WSL 관련 글을 정리한 것과 볼만한 글 링크를 정리한 것이다. jacking75/wsl_docs 괜찮은 내용이라면 스타 부탁한다~ ^^ (스타가 많으면 꾸준히 업데이트 할 확률이 높아진다)
더 읽기

golang - GameServer(TCP) 프로그래밍 학습을 위한 Github 저장소

Golang으로 게임서버(TCP)를 만들 수 있는 기술을 배우기 위해 단계 별로 실습을 할 수 있도록 만든 저장소이다. golang_socketGameServer_codelab 회사에서 위 저장소 코드를 중심으로 실습을 하였다. 저장소가 도움이 되었다면 스타 부탁한다~ ^^ 참고 코드 오픈 소스 TCP 서버 코드 모음
더 읽기