cubrid icon indicating copy to clipboard operation
cubrid copied to clipboard

[CBRD-25971] C++23 Standard Compatibility

Open vimkim opened this issue 11 months ago • 0 comments

http://jira.cubrid.org/browse/CBRD-25971

Purpose

CUBRID should compile and build in C++23 standard.

Implementation

변경 사항 요약

  1. 임시 파일 경로 처리 개선 (filesys_temp.cpp)

    • 임시 파일 경로를 처리할 때 기존에는 u8string()을 사용했으나, 이를 플랫폼에 맞게 보다 안정적인 방식으로 변경함.
      • Linux/macOS: temp_directory_path().string() 사용 (기본적으로 UTF-8이므로 그대로 사용).
      • Windows: wstring을 UTF-8 문자열로 변환하기 위해 std::wstring_convert를 사용.
  2. 헤더 파일 추가 (load_server_loader.hpp)

    • record_descriptor.hpp 헤더 파일이 새로 포함됨. 없을 경우 C++23에서는 fail
  3. 메모리 오더 명시 간소화 (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

vimkim avatar Mar 14 '25 11:03 vimkim