C++17을 적용하여 수정한 Loki 라이브러리

Loki<library> 다운로드 링크: http://loki-lib.sourceforge.net/index.php?n=Main.Download

※ C++17을 적용한 Loki 다운받기: loki-cpp17-added-version.zip

※ Loki 라이브러리 라이선스: MIT License

Modern C++ Design 의 Loki 라이브러리를 C++17(및 그 하위 버전)에서 추가된 기능을 사용하여 약간 수정을 했습니다. 크게 수정된 부분은 Typelist를 쉽게 생성할 수 있는 가변인자 템플릿을 적용한 클래스 템플릿과, using 선언을 통한 별칭 템플릿, 그리고 std::shared_mutex와 std::atomic을 사용하도록 변경된 Threads.h 헤더입니다. 나머지 수정된 파일들은 앞서 언급된 변경 사항들과 호환이 되도록 수정한 것이 전부입니다.

변경된 파일들에 대해 유닛 테스트를 수행하긴 했으나, 미처 걸러지지 못한 버그가 있을 수 있습니다. 또한 Threads.h 헤더를 포함하는 기존 코드와 호환되지 않을 수 있습니다.

또한 실무 경험이 부족한 상태에서 짠 코드라 여러가지 미숙한 부분이 있을 수 있습니다. 이메일(ajw9105@hanmail.net)을 통해 개선해야 할 점이나 여러 의견들을 받고 있으니 관심 있으신 분들은 메일 보내주셨으면 좋겠습니다.

기반이 되는 소스 코드는 https://sourceforge.net/projects/loki-lib/files/Source%20Code/Modern%20C%2B%2B%20Design/ 의 소스 코드 중 Reference 폴더 내의 소스 코드 입니다. LOKI_USE_CPP17 이라는 값을 갖지 않는 매크로 상수를 정의한 후에, Loki 라이브러리의 헤더파일을 include하면 사용할 수 있습니다. 지금부터 변경된 헤더 파일 및 추가된 .cpp파일에 대해서 설명하겠습니다. 여기서 설명하지 않은 Loki 라이브러리의 사용법은 Modern C++ Design 를 참고하세요.

차례




차례 접기






다른 글들의 목록을 보려면 이 이미지를 클릭해 주세요.