doris-thirdparty icon indicating copy to clipboard operation
doris-thirdparty copied to clipboard

add missing memory header for MemReader class

Open w1m024 opened this issue 5 months ago • 0 comments

Environment

  • OS: Ubuntu 24.10
  • Compiler: GCC 14
  • Commit: b47f6972e66c47f7e17a2e411ce2cac2f2eeb52b

Steps to Reproduce

  1. Create a build directory and configure the project with tests enabled:
    cmake -DENABLE_TESTS=ON ..
    
  2. Run the build for the test target:
    make cl_test
    

Observed Behavior

The compilation process fails when building src/test/document/TestDocument.cpp. The compiler reports that std::make_unique is not defined.

The key error from the compiler is:

/path/to/doris-thirdparty/src/test/document/TestDocument.cpp:69:36: error: ‘make_unique’ is not a member of ‘std’
   69 |   auto char_string_reader = std::make_unique<lucene::util::SStringReader<char>>();
      |                                   ^~~~~~~~~~~
// Compiler Note:
/path/to/doris-thirdparty/src/test/document/TestDocument.cpp:13:1: note: ‘std::make_unique’ is defined in header ‘<memory>’; this is probably fixable by adding ‘#include <memory>’
   12 | #include <nanobench.h>
  +++ |+#include <memory>
   13 |

Cause and Solution

The function std::make_unique was introduced in C++14 and is defined in the header. Newer compilers like GCC 14 are stricter about requiring explicit header includes.

Solution: Adding #include <memory> to the top of src/test/document/TestDocument.cpp resolves the compilation error.

w1m024 avatar Sep 02 '25 13:09 w1m024