본문 바로가기

C++128

boost/asio deprecated 1.69.0 boost::asio가 c++ 표준에 들어가게 되서 그런지 변경 사항들이 많다.호환성을 위해 더이상 더이상 사용되지 않는 코드들이 여전히 남아있지만,전처리기에 BOOST_ASIO_NO_DEPRECATED를 지정하면 더이상 사용되지 않는 코드들이 비활성화 된다. io_service가 io_context로 이름 변경io_context::dispatch가 dispatch 로 대체 됨io_context::post가 post 로 대체 됨io_context::strand::wrap이 bind_execuator 로 대체 됨io_context::get_io_context(), io_context::get_io_service()가 context() 함수로 이름 변경.io_context::strand::get_io_con.. 2019. 3. 11.
static thread_local 인스턴스의 소멸 시점 #include #include #include using namespace std; class Foo{public: Foo() { cout 2019. 3. 5.
boost/asio simple periodic timer #include #include #include class PeriodicTimerExample{public: PeriodicTimerExample() : timer{ctx} { } void run() { tick(); ctx.run(); } private: void tick() { using namespace std; timer.expires_after(3s); timer.async_wait([this](const auto & err) { cout 2019. 3. 4.
c++, istream으로 읽은 개수 반환 gcount readsome이 아니다. auto MakeHash(std::istream& is){ std::array fileHash; SHA256_CTX ctx; SHA256_Init(&ctx); char buf[512]{ 0, }; while (is.good()) { is.read(buf, sizeof(buf)); const int cnt = is.gcount(); SHA256_Update(&ctx, buf, cnt); } SHA256_Final(fileHash.data(), &ctx); return fileHash;}gcount는 마지막으로 읽어난 엘리먼트의 개수를 반환한다. 2019. 1. 19.