IOCP 프로그래밍 tutorial

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

분산 폴더 동기화 툴 Syncthing

Syncthing는 분산 폴더 동기화 툴이다. Syncthing 인터넷을 통해 여러 단말기의 로컬 폴더를 동기화 할 수있는 도구이다. 3자가 관리하는 중앙 서버를 거치지 않고 개인 데이터를 공유 하려는 경우에 적합하다. 통신이 완벽하게 암호화 되어 있는 것과 개발이 오픈 소스로 진행 되고 있는...
더 읽기

C++ - 스레드 내에서 발생한 예외 처리

참고 아래의 코드는 sigma_reference 함수에서 예외가 발생하는 경우 main에서 catch하고 있지만 예외가 잡히지 않는다. 이유는 sigma_reference 함수의 스레드와 main 함수의 스레드가 서로 다르기 때문이다. #include <thread> #include <iostream> #include <functional> // ref #include <stdexcept> // invalid_argument #include <string> // to_string...
더 읽기

C++ - 약어와 의미

약어 의미 ADL Argument Dependent name Lookup COW Copy On Write CRTP Curiously Recurring Template Pattern ctor constructor dtor destructor EBO Empty Base Optimization ET Expression Template ICE Internal Compiler Error lhs left-hand side NDR No Diagnostic Required NRVO Named...
더 읽기

C++17 - RVO(Return Value Optimization) 지원

컴파일러 최적화 기능으로 RVO(Return Value Optimization) 나 NRVO(Named Return Value Optimization)를 지원하고 있었다. 그러나 이 최적화 기능은 각 컴파일러에서 제공하는 것이지 C++ 표준으로 정해진 것이 아니다. 즉 어떤 컴파일러는 지원하지 않을 수 있다. C++17 에서는 RVO에 한해서는 표준 규약으로 지원한다....
더 읽기

C++17 - null pointer를 delete 해도 문제 없음

C++14까지는 메모리 할당을 받은 객체인지 확인 후 delete를 하였다. if(pUser) { delete pUser; } C++17 에서는 null pointer를 delete 해도 문제 없다(아래 설명에서는 C++14도 괜찮은 듯…). delete pUser; http://en.cppreference.com/w/cpp/language/delete If expression evaluates to a null pointer value, no destructors are...
더 읽기

C++17 - string_view의 주의점

출처 string_view 클라스 == 문자열에 대한 읽기 전용 뷰. std::string와 같이 null 종단 문자열 이외도 올바르게 다룰 수 있다. null 종단 문자를 도중에 포함 할 수 있다. string_view 클래스는 참조처 문자열의 소유권을 관리하지 않는다. 옛스러운 raw pointer 와 비슷한 dangling...
더 읽기

C++17 - Boyer-Moore, Boyer-Moore-Horspool 검색 알고리즘 추가

헤더 파일은 #include <functional> Boyer-Moore 최악의 케이스가 o(n). n은 검색 대상 범위의 길이 전처리 시에 테이블을 2개 만들므로 전처리 시간이 걸리고, 메모리를 더 먹는다. 검색 패턴이나 검색 대상 범위가 긴 경우, 혹은 같은 검색 패턴에서 몇 번이라도 검색하는 경우에는 유리....
더 읽기