출처 타이머를 다시 이용하지 않는 경우 상태 변수를 추가하지 않고 취소를 알 수 있다. #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
더 읽기
출처 split 지정한 구분 문자로 문자열을 분할 할 때는 boost::algorithm::split 함수를 사용한다. 얻어진 결과는 지정한 컨테이너에서 받는다. 구분 문자인지 판정하는 것은 boost::is_any_of를 사용한다. 아래 예는 문자열을 + 로 구분하고 있다. split(plus_split_s, s, [](char c){return c == '+';}); #include <bits/stdc++.h> #include...
더 읽기
일부 번역(중간쯤부터)
더 읽기
출처 다배수 길이 정수를 다룰 때는 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 ?...
더 읽기
출처 정수의 범위를 사용하려면 boost::irange 함수를 사용한다. 범위로서 [0, n) 을 지정하고, 제 3인수로 단계 폭을 2로 지정하고 있다. (제 3 인수를 생략하면 단계 폭은 1이 된다) 이것에 대해 range-based for 문을 작성할 수 있으며, Python의 for 문과 비슷하다. #include...
더 읽기
WSL 관련 글을 정리한 것과 볼만한 글 링크를 정리한 것이다.
jacking75/wsl_docs
괜찮은 내용이라면 스타 부탁한다~ ^^ (스타가 많으면 꾸준히 업데이트 할 확률이 높아진다)
더 읽기
Golang으로 게임서버(TCP)를 만들 수 있는 기술을 배우기 위해 단계 별로 실습을 할 수 있도록 만든 저장소이다.
golang_socketGameServer_codelab
회사에서 위 저장소 코드를 중심으로 실습을 하였다.
저장소가 도움이 되었다면 스타 부탁한다~ ^^
참고 코드
오픈 소스 TCP 서버 코드 모음
더 읽기
StackExchange.Redis 사용 방법 정리. 접속 실패 출처 //Redis의 DB를 선택 IDatabase db = RedisRepository.SelectCache(0); //key 생성 var key = "hoge"; // score 계산을 위해 Unixtime 얻기 var unixSeconds = DateTimeOffset.Now.ToUnixTimeSeconds(); //경과 초 수를 score로 저장 var score = (double)unixSeconds; //관람...
더 읽기