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개 만들므로 전처리 시간이 걸리고, 메모리를 더 먹는다. 검색 패턴이나 검색 대상 범위가 긴 경우, 혹은 같은 검색 패턴에서 몇 번이라도 검색하는 경우에는 유리....
더 읽기

C++17 - 숫자to문자열, 문자열to숫자 변환 표준 라이브러리

C++17에서 숫자를 문자열로 변환, 문자열을 숫자로 변환 해주는 라이브러리가 새로 생김 출처 특징 서식 지정은 문자열이 아니다 동적 메모리 할당을 하지 않는다 로케일 무시 가상 함수 호출이 아니다 버퍼 오버런 방지 반환 값에서 에러를 반환한다 입력 문자열의 빈 공간은 무시하지...
더 읽기

C++17 - shared_mutex

출처 mutex로 보호 된 데이터를 다수의 스레드가 액세스 할 때 성능이 저하된다. 이 데이터 변경을 하지 않는 스레드가 다수인 경우 성능 저하를 줄일 수 있다. 데이터의 변경을 하지 않는 읽기(reader) 스레드와 데이터의 변경을 하는 쓰기(writer) 스레드가 각각 복수 동작하고 있다고...
더 읽기

mermaid.js와 PlantUML로 서버 개발 및 유지 보수에 필요한 문서 만들기

컴투스에서 매달 게임 서버 프로그래머 대상으로 세미나(회사에서는 월 세션 이라고 부릅니다)를 진행합니다. 주제는 게임 서버 개발과 관련된 것입니다. 이번 달에 발표한 문서를 공유합니다. 컴투스에서 모든 서버 프로그래머는 기본으로 JetBrains의 All Products Pack 라이센스가 있습니다. 그래서 JetBrains IDE 사용에 제약이 없어서...
더 읽기

C++17 - 복수의 using 선언 시 컴마 구분 사용

간결한 코딩을 위해 네임 스페이스를 생략하고 싶다면 using 선언을 사용한다 std::cout << "hello"; using std::cout; cout << "hello"; 그러나 아래와 같은 경우는 using std::cout; using std::endl; cout << "hello" << endl; 로 두 번이나 using 선언을 해야 한다. C++17에서는 위의...
더 읽기