cubrid
cubrid copied to clipboard
[CBRD-25971] C++23 Standard Compatibility
http://jira.cubrid.org/browse/CBRD-25971
Purpose
CUBRID should compile and build in C++23 standard.
Implementation
변경 사항 요약
-
임시 파일 경로 처리 개선 (
filesys_temp.cpp)- 임시 파일 경로를 처리할 때 기존에는
u8string()을 사용했으나, 이를 플랫폼에 맞게 보다 안정적인 방식으로 변경함.- Linux/macOS:
temp_directory_path().string()사용 (기본적으로 UTF-8이므로 그대로 사용). - Windows:
wstring을 UTF-8 문자열로 변환하기 위해std::wstring_convert를 사용.
- Linux/macOS:
- 임시 파일 경로를 처리할 때 기존에는
-
헤더 파일 추가 (
load_server_loader.hpp)-
record_descriptor.hpp헤더 파일이 새로 포함됨. 없을 경우 C++23에서는 fail
-
-
메모리 오더 명시 간소화 (
pl_connection.cpp)- 기존:
std::memory_order::memory_order_relaxed - 변경:
std::memory_order_relaxed
- 기존:
C++23에서는 std::memory_order::memory_order_relaxed가 사라지고 std::memory_order_relaxed 사용이 권장됨.
std::memory_order_relaxed는 C++17에서도 동작함.
요약하면, 플랫폼 호환성 개선, 코드 정리가 주요 변경 사항입니다.
Remarks
GCC 8: Success (c++17) GCC 14: Success Clang 19: Success Windows: Success