alibaba / yalantinglibs

A collection of modern C++ libraries, include coro_rpc, struct_pack, struct_json, struct_xml, struct_pb, easylog, async_simple
https://alibaba.github.io/yalantinglibs/
Apache License 2.0
1.46k stars 227 forks source link

centos7 gcc11.2 build failed #199

Closed vbirds closed 1 year ago

vbirds commented 1 year ago

Search before asking

What happened + What you expected to happen

centos7 gcc build failed

gcc version:

gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[ 25%] Linking CXX executable conformance_test_runner
[ 26%] Linking CXX executable struct_json_example_manual
[ 26%] Built target conformance_test_runner
[ 27%] Building CXX object src/coro_rpc/tests/CMakeFiles/test_rpc.dir/test_coro_rpc_server.cpp.o
[ 27%] Built target struct_json_example_manual
[ 28%] Building CXX object src/coro_rpc/tests/CMakeFiles/test_coro_rpc_server.dir/test_coro_rpc_server.cpp.o
In file included from /home/jianghz/download/yalantinglibs/include/easylog/appender.hpp:25,
                 from /home/jianghz/download/yalantinglibs/include/easylog/easylog.h:22,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:201:13: error: ‘string’ in namespace ‘std::pmr’ does not name a type
  201 |   std::pmr::string ss_{&resource_};
      |             ^~~~~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp: In member function ‘const char* easylog::record_t::get_message() const’:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:108:44: error: ‘ss_’ was not declared in this scope
  108 |   const char *get_message() const { return ss_.data(); }
      |                                            ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp: In member function ‘easylog::record_t& easylog::record_t::operator<<(const T&)’:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:124:7: error: ‘ss_’ was not declared in this scope
  124 |       ss_.append(temp, std::distance(temp, end));
      |       ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:127:7: error: ‘ss_’ was not declared in this scope
  127 |       ss_.push_back(data);
      |       ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:136:7: error: ‘ss_’ was not declared in this scope
  136 |       ss_.append(buf, std::distance(buf, ptr));
      |       ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:139:7: error: ‘ss_’ was not declared in this scope
  139 |       ss_.append(data);
      |       ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp: In member function ‘void easylog::record_t::printf_string_format(const char*, Args ...)’:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:160:15: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
  160 |     std::pmr::string buf{&resource};
      |               ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/string:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/stdexcept:39,
                 from /home/jianghz/download/yalantinglibs/thirdparty/async_simple/async_simple/Common.h:19,
                 from /home/jianghz/download/yalantinglibs/thirdparty/async_simple/async_simple/coro/Collect.h:19,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:16:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
In file included from /home/jianghz/download/yalantinglibs/include/easylog/appender.hpp:25,
                 from /home/jianghz/download/yalantinglibs/include/easylog/easylog.h:22,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:164:5: error: ‘buf’ was not declared in this scope
  164 |     buf.reserve(size + 1);
      |     ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:164:5: note: suggested alternatives:
In file included from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/detail/socket_ops.hpp:372,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/detail/socket_holder.hpp:20,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/detail/reactive_socket_accept_op.hpp:26,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/detail/reactive_socket_service.hpp:31,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/basic_socket.hpp:38,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/basic_datagram_socket.hpp:20,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio.hpp:26,
                 from /home/jianghz/download/yalantinglibs/include/asio_util/asio_coro_util.hpp:21,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:31,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/home/jianghz/download/yalantinglibs/thirdparty/asio/asio/detail/impl/socket_ops.ipp:708:15: note:   ‘asio::detail::socket_ops::buf’
  708 | typedef iovec buf;
      |               ^~~
In file included from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/detail/reactive_descriptor_service.hpp:31,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/basic_readable_pipe.hpp:38,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio.hpp:32,
                 from /home/jianghz/download/yalantinglibs/include/asio_util/asio_coro_util.hpp:21,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:31,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/home/jianghz/download/yalantinglibs/thirdparty/asio/asio/detail/descriptor_ops.hpp:83:15: note:   ‘asio::detail::descriptor_ops::buf’
   83 | typedef iovec buf;
      |               ^~~
In file included from /home/jianghz/download/yalantinglibs/include/easylog/appender.hpp:25,
                 from /home/jianghz/download/yalantinglibs/include/easylog/easylog.h:22,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:169:5: error: ‘ss_’ was not declared in this scope
  169 |     ss_.append(buf);
      |     ^~~
In file included from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/home/jianghz/download/yalantinglibs/include/easylog/easylog.h: In member function ‘void easylog::logger<Id>::append_format(const easylog::record_t&)’:
/home/jianghz/download/yalantinglibs/include/easylog/easylog.h:92:15: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
   92 |     std::pmr::string str{&resource};
      |               ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/string:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/stdexcept:39,
                 from /home/jianghz/download/yalantinglibs/thirdparty/async_simple/async_simple/Common.h:19,
                 from /home/jianghz/download/yalantinglibs/thirdparty/async_simple/async_simple/coro/Collect.h:19,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:16:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
In file included from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/home/jianghz/download/yalantinglibs/include/easylog/easylog.h:96:5: error: ‘str’ was not declared in this scope; did you mean ‘std’?
   96 |     str.append(buf, len).append(" ");
      |     ^~~
      |     std
In file included from /home/jianghz/download/yalantinglibs/include/easylog/appender.hpp:25,
                 from /home/jianghz/download/yalantinglibs/include/easylog/easylog.h:22,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:201:13: error: ‘string’ in namespace ‘std::pmr’ does not name a type
  201 |   std::pmr::string ss_{&resource_};
      |             ^~~~~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp: In member function ‘const char* easylog::record_t::get_message() const’:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:108:44: error: ‘ss_’ was not declared in this scope
  108 |   const char *get_message() const { return ss_.data(); }
      |                                            ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp: In member function ‘easylog::record_t& easylog::record_t::operator<<(const T&)’:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:124:7: error: ‘ss_’ was not declared in this scope
  124 |       ss_.append(temp, std::distance(temp, end));
      |       ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:127:7: error: ‘ss_’ was not declared in this scope
  127 |       ss_.push_back(data);
      |       ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:136:7: error: ‘ss_’ was not declared in this scope
  136 |       ss_.append(buf, std::distance(buf, ptr));
      |       ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:139:7: error: ‘ss_’ was not declared in this scope
  139 |       ss_.append(data);
      |       ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp: In member function ‘void easylog::record_t::printf_string_format(const char*, Args ...)’:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:160:15: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
  160 |     std::pmr::string buf{&resource};
      |               ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/string:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/stdexcept:39,
                 from /home/jianghz/download/yalantinglibs/thirdparty/async_simple/async_simple/Common.h:19,
                 from /home/jianghz/download/yalantinglibs/thirdparty/async_simple/async_simple/coro/Collect.h:19,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:16:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
In file included from /home/jianghz/download/yalantinglibs/include/easylog/appender.hpp:25,
                 from /home/jianghz/download/yalantinglibs/include/easylog/easylog.h:22,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:164:5: error: ‘buf’ was not declared in this scope
  164 |     buf.reserve(size + 1);
      |     ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:164:5: note: suggested alternatives:
In file included from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/detail/socket_ops.hpp:372,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/detail/socket_holder.hpp:20,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/detail/reactive_socket_accept_op.hpp:26,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/detail/reactive_socket_service.hpp:31,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/basic_socket.hpp:38,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/basic_datagram_socket.hpp:20,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio.hpp:26,
                 from /home/jianghz/download/yalantinglibs/include/asio_util/asio_coro_util.hpp:21,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:31,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/home/jianghz/download/yalantinglibs/thirdparty/asio/asio/detail/impl/socket_ops.ipp:708:15: note:   ‘asio::detail::socket_ops::buf’
  708 | typedef iovec buf;
      |               ^~~
In file included from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/detail/reactive_descriptor_service.hpp:31,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio/basic_readable_pipe.hpp:38,
                 from /home/jianghz/download/yalantinglibs/thirdparty/asio/asio.hpp:32,
                 from /home/jianghz/download/yalantinglibs/include/asio_util/asio_coro_util.hpp:21,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:31,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/home/jianghz/download/yalantinglibs/thirdparty/asio/asio/detail/descriptor_ops.hpp:83:15: note:   ‘asio::detail::descriptor_ops::buf’
   83 | typedef iovec buf;
      |               ^~~
In file included from /home/jianghz/download/yalantinglibs/include/easylog/appender.hpp:25,
                 from /home/jianghz/download/yalantinglibs/include/easylog/easylog.h:22,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:169:5: error: ‘ss_’ was not declared in this scope
  169 |     ss_.append(buf);
      |     ^~~
In file included from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/home/jianghz/download/yalantinglibs/include/easylog/easylog.h: In member function ‘void easylog::logger<Id>::append_format(const easylog::record_t&)’:
/home/jianghz/download/yalantinglibs/include/easylog/easylog.h:92:15: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
   92 |     std::pmr::string str{&resource};
      |               ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/string:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/stdexcept:39,
                 from /home/jianghz/download/yalantinglibs/thirdparty/async_simple/async_simple/Common.h:19,
                 from /home/jianghz/download/yalantinglibs/thirdparty/async_simple/async_simple/coro/Collect.h:19,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:16:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
In file included from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /home/jianghz/download/yalantinglibs/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/home/jianghz/download/yalantinglibs/include/easylog/easylog.h:96:5: error: ‘str’ was not declared in this scope; did you mean ‘std’?
   96 |     str.append(buf, len).append(" ");
      |     ^~~
      |     std
make[2]: *** [src/coro_rpc/tests/CMakeFiles/test_rpc.dir/build.make:76:src/coro_rpc/tests/CMakeFiles/test_rpc.dir/test_coro_rpc_server.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:854:src/coro_rpc/tests/CMakeFiles/test_rpc.dir/all] 错误 2
make[1]: *** 正在等待未完成的任务....
[ 28%] Building CXX object src/coro_rpc/tests/CMakeFiles/test_coro_rpc_server.dir/rpc_service.cpp.o
make[2]: *** [src/coro_rpc/tests/CMakeFiles/test_coro_rpc_server.dir/build.make:76:src/coro_rpc/tests/CMakeFiles/test_coro_rpc_server.dir/test_coro_rpc_server.cpp.o] 错误 1
make[2]: *** 正在等待未完成的任务....
[ 29%] Building CXX object src/struct_pack/tests/CMakeFiles/test_serialize.dir/test_compatible.cpp.o
In file included from /home/jianghz/download/yalantinglibs/include/easylog/appender.hpp:25,
                 from /home/jianghz/download/yalantinglibs/include/easylog/easylog.h:22,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/rpc_service.cpp:16:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:201:13: error: ‘string’ in namespace ‘std::pmr’ does not name a type
  201 |   std::pmr::string ss_{&resource_};
      |             ^~~~~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp: In member function ‘const char* easylog::record_t::get_message() const’:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:108:44: error: ‘ss_’ was not declared in this scope
  108 |   const char *get_message() const { return ss_.data(); }
      |                                            ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp: In member function ‘easylog::record_t& easylog::record_t::operator<<(const T&)’:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:124:7: error: ‘ss_’ was not declared in this scope
  124 |       ss_.append(temp, std::distance(temp, end));
      |       ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:127:7: error: ‘ss_’ was not declared in this scope
  127 |       ss_.push_back(data);
      |       ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:136:7: error: ‘ss_’ was not declared in this scope
  136 |       ss_.append(buf, std::distance(buf, ptr));
      |       ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:139:7: error: ‘ss_’ was not declared in this scope
  139 |       ss_.append(data);
      |       ^~~
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp: In member function ‘void easylog::record_t::printf_string_format(const char*, Args ...)’:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:160:15: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
  160 |     std::pmr::string buf{&resource};
      |               ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/iosfwd:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/string_view:40,
                 from /home/jianghz/download/yalantinglibs/include/easylog/easylog.h:18,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/rpc_service.cpp:16:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
In file included from /home/jianghz/download/yalantinglibs/include/easylog/appender.hpp:25,
                 from /home/jianghz/download/yalantinglibs/include/easylog/easylog.h:22,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/rpc_service.cpp:16:
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:164:5: error: ‘buf’ was not declared in this scope; did you mean ‘buf_’?
  164 |     buf.reserve(size + 1);
      |     ^~~
      |     buf_
/home/jianghz/download/yalantinglibs/include/easylog/record.hpp:169:5: error: ‘ss_’ was not declared in this scope
  169 |     ss_.append(buf);
      |     ^~~
In file included from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/rpc_service.cpp:16:
/home/jianghz/download/yalantinglibs/include/easylog/easylog.h: In member function ‘void easylog::logger<Id>::append_format(const easylog::record_t&)’:
/home/jianghz/download/yalantinglibs/include/easylog/easylog.h:92:15: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
   92 |     std::pmr::string str{&resource};
      |               ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/iosfwd:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/string_view:40,
                 from /home/jianghz/download/yalantinglibs/include/easylog/easylog.h:18,
                 from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/rpc_service.cpp:16:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
In file included from /home/jianghz/download/yalantinglibs/src/coro_rpc/tests/rpc_service.cpp:16:
/home/jianghz/download/yalantinglibs/include/easylog/easylog.h:96:5: error: ‘str’ was not declared in this scope; did you mean ‘std’?
   96 |     str.append(buf, len).append(" ");
      |     ^~~
      |     std
make[2]: *** [src/coro_rpc/tests/CMakeFiles/test_coro_rpc_server.dir/build.make:90:src/coro_rpc/tests/CMakeFiles/test_coro_rpc_server.dir/rpc_service.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:880:src/coro_rpc/tests/CMakeFiles/test_coro_rpc_server.dir/all] 错误 2
[ 29%] Building CXX object src/struct_pack/tests/CMakeFiles/test_serialize.dir/main.cpp.o
[ 30%] Linking CXX executable ../../../tests/test_serialize
[ 30%] Built target test_serialize
make: *** [Makefile:146:all] 错误 2

Reproduction way

Anything else

Are you willing to submit a PR?

poor-circle commented 1 year ago

Could you compile this code in your environment?

test.cpp

#include <memory_resource>
#include <string>
int main()
{
  return std::pmr::string{"abc"}.size();
}
g++ test.cpp -std=c++17
vbirds commented 1 year ago

Could you compile this code in your environment?

test.cpp

#include <memory_resource>
#include <string>
int main()
{
  return std::pmr::string{"abc"}.size();
}
g++ test.cpp -std=c++17

build failed,error info:

[root@localhost 09:40:49 ~]# g++ test.cpp -std=c++17
test.cpp: In function ‘int main()’:
test.cpp:5:20: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
    5 |   return std::pmr::string{"abc"}.size();
      |                    ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/iosfwd:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/system_error:40,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/bits/std_mutex.h:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/shared_mutex:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/memory_resource:38,
                 from test.cpp:1:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
test.cpp:5:26: error: expected ‘;’ before ‘{’ token
    5 |   return std::pmr::string{"abc"}.size();
      |                          ^
      |                          ;
test.cpp:5:32: error: expected ‘;’ before ‘}’ token
    5 |   return std::pmr::string{"abc"}.size();
      |                                ^
      |                                ;
test.cpp:5:33: error: expected primary-expression before ‘.’ token
    5 |   return std::pmr::string{"abc"}.size();
      |                                 ^
vbirds commented 1 year ago

These errors may be caused by centos7:

https://access.redhat.com/documentation/en-us/red_hat_developer_toolset/11/html-single/user_guide/index

On Red Hat Enterprise Linux 7, the GCC C++ compiler in Red Hat Developer Toolset still uses the old reference-counted implementation of std::string. This is done for compatibility with the Red Hat Enterprise Linux 7 system toolchain GCC. This means that some new C++17 features, such as std::pmr::string, are not available on Red Hat Enterprise Linux 7, even when using the Red Hat Developer Toolset compiler.

qicosmos commented 1 year ago

Thanks for your report, i will solve it later.

qicosmos commented 1 year ago

改成c++20 用-std=c++20试试

vbirds commented 1 year ago

改成c++20 用-std=c++20试试

g++ test.cpp -std=c++20 还是报错

[root@localhost 10:50:38 ~]# g++ test.cpp -std=c++20
test.cpp: In function ‘int main()’:
test.cpp:5:20: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
    5 |   return std::pmr::string{"abc"}.size();
      |                    ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/iosfwd:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/system_error:40,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/bits/std_mutex.h:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/shared_mutex:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/memory_resource:38,
                 from test.cpp:1:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
test.cpp:5:26: error: expected ‘;’ before ‘{’ token
    5 |   return std::pmr::string{"abc"}.size();
      |                          ^
      |                          ;
test.cpp:5:32: error: expected ‘;’ before ‘}’ token
    5 |   return std::pmr::string{"abc"}.size();
      |                                ^
      |                                ;
test.cpp:5:33: error: expected primary-expression before ‘.’ token
    5 |   return std::pmr::string{"abc"}.size();
      |                                 ^
qicosmos commented 1 year ago

有点奇怪,gcc11是支持了pmr的,看这里:https://godbolt.org/z/8av9YKceh 里面编译都是可以通过的,你可能要检查一下你的gcc是不是还是老的,没有更新成功。

vbirds commented 1 year ago

有点奇怪,gcc11是支持了pmr的,看这里:https://godbolt.org/z/8av9YKceh 里面编译都是可以通过的,你可能要检查一下你的gcc是不是还是老的,没有更新成功。

我是通过 scl 安装 的 devtoolset-11-toolchain.x86_64,可能是这个包有问题

poor-circle commented 1 year ago

有点奇怪,gcc11是支持了pmr的,看这里:https://godbolt.org/z/8av9YKceh 里面编译都是可以通过的,你可能要检查一下你的gcc是不是还是老的,没有更新成功。

我是通过 scl 安装 的 devtoolset-11-toolchain.x86_64,可能是这个包有问题

能运行一下这个代码吗?

#include<iostream>
#include<memory_resource>
int main()
{
  std::cout<<__cpp_lib_memory_resource<<std::endl;
  return 0;
}
vbirds commented 1 year ago

有点奇怪,gcc11是支持了pmr的,看这里:https://godbolt.org/z/8av9YKceh 里面编译都是可以通过的,你可能要检查一下你的gcc是不是还是老的,没有更新成功。

我是通过 scl 安装 的 devtoolset-11-toolchain.x86_64,可能是这个包有问题

能运行一下这个代码吗?

#include<iostream>
#include<memory_resource>
int main()
{
  std::cout<<__cpp_lib_memory_resource<<std::endl;
  return 0;
}

运行了,输出为空:

[root@localhost 11:11:49 ~]# g++ test11.cpp -std=c++20
[root@localhost 11:11:51 ~]#
poor-circle commented 1 year ago

有点奇怪,gcc11是支持了pmr的,看这里:https://godbolt.org/z/8av9YKceh 里面编译都是可以通过的,你可能要检查一下你的gcc是不是还是老的,没有更新成功。

我是通过 scl 安装 的 devtoolset-11-toolchain.x86_64,可能是这个包有问题

能运行一下这个代码吗?

#include<iostream>
#include<memory_resource>
int main()
{
  std::cout<<__cpp_lib_memory_resource<<std::endl;
  return 0;
}

运行了,输出为空:

[root@localhost 11:11:49 ~]# g++ test11.cpp -std=c++20
[root@localhost 11:11:51 ~]#

程序运行后输出为空吗?

vbirds commented 1 year ago

有点奇怪,gcc11是支持了pmr的,看这里:https://godbolt.org/z/8av9YKceh 里面编译都是可以通过的,你可能要检查一下你的gcc是不是还是老的,没有更新成功。

我是通过 scl 安装 的 devtoolset-11-toolchain.x86_64,可能是这个包有问题

能运行一下这个代码吗?

#include<iostream>
#include<memory_resource>
int main()
{
  std::cout<<__cpp_lib_memory_resource<<std::endl;
  return 0;
}

运行了,输出为空:

[root@localhost 11:11:49 ~]# g++ test11.cpp -std=c++20
[root@localhost 11:11:51 ~]#

程序运行后输出为空吗?

是的,输出为空

poor-circle commented 1 year ago

有点奇怪,gcc11是支持了pmr的,看这里:https://godbolt.org/z/8av9YKceh 里面编译都是可以通过的,你可能要检查一下你的gcc是不是还是老的,没有更新成功。

我是通过 scl 安装 的 devtoolset-11-toolchain.x86_64,可能是这个包有问题

能运行一下这个代码吗?

#include<iostream>
#include<memory_resource>
int main()
{
  std::cout<<__cpp_lib_memory_resource<<std::endl;
  return 0;
}

运行了,输出为空:

[root@localhost 11:11:49 ~]# g++ test11.cpp -std=c++20
[root@localhost 11:11:51 ~]#

程序运行后输出为空吗?

是的,输出为空

ok,我们等下利用这个宏判断下环境里面有没有pmr

qicosmos commented 1 year ago

你能用这个分支的代码测试一下吗? https://github.com/alibaba/yalantinglibs/pull/200

vbirds commented 1 year ago

你能用这个分支的代码测试一下吗? #200

用这个分支点代码编译有报错:

[root@localhost 11:42:20 yalantinglibs-fix_pmr]# mkdir build
[root@localhost 11:42:25 yalantinglibs-fix_pmr]# cd build/
[root@localhost 11:42:26 build]# cmake ../
-- The CXX compiler identification is GNU 11.2.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /opt/rh/devtoolset-11/root/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- CXX Standard: 20
-- Build type: Release
-- Build with libstdc++
CMake Warning at cmake/develop.cmake:34 (message):
  Sanitizer supported only for debug type
Call Stack (most recent call first):
  CMakeLists.txt:19 (include)

-- yLT_ENABLE_PROJECTS: struct_pack;struct_pb;struct_json;coro_rpc;easylog
-- ylt_add_tests_struct_pack
-- Found Protobuf: /usr/local/lib/libprotobuf.so;-lpthread (found version "3.21.6")
-- ylt_add_benchmark_struct_pack
CMake Warning at src/struct_pack/benchmark/CMakeLists.txt:36 (find_package):
  By not providing "FindMsgpack.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Msgpack", but
  CMake did not find one.

  Could not find a package configuration file provided by "Msgpack" with any
  of the following names:

    MsgpackConfig.cmake
    msgpack-config.cmake

  Add the installation prefix of "Msgpack" to CMAKE_PREFIX_PATH or set
  "Msgpack_DIR" to a directory containing one of the above files.  If
  "Msgpack" provides a separate development package or SDK, be sure it has
  been installed.

-- ylt_add_example_struct_pack
-- ylt_add_tests_struct_pb
-- ylt_add_example_struct_pb
-- ylt_add_example_struct_json
-- ylt_add_tests_coro_rpc
-- ylt_add_benchmark_coro_rpc
-- GENERATE_BENCHMARK_DATA: ON
-- ylt_add_example_coro_rpc
-- ylt_add_tests_easylog
-- ylt_add_benchmark_easylog
CMake Warning at src/easylog/benchmark/CMakeLists.txt:1 (find_package):
  By not providing "Findglog.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "glog", but
  CMake did not find one.

  Could not find a package configuration file provided by "glog" with any of
  the following names:

    glogConfig.cmake
    glog-config.cmake

  Add the installation prefix of "glog" to CMAKE_PREFIX_PATH or set
  "glog_DIR" to a directory containing one of the above files.  If "glog"
  provides a separate development package or SDK, be sure it has been
  installed.

-- Configuring done
-- Generating done
-- Build files have been written to: /root/yalantinglibs-fix_pmr/build
[root@localhost 11:42:29 build]# make -j 4
[  0%] Running cpp protocol buffer compiler on google/protobuf/test_messages_proto3.proto
[  0%] Building CXX object src/struct_pack/examples/serialize/CMakeFiles/serialize_example.dir/serialize.cpp.o
[  0%] Building CXX object src/struct_pb/protoc-plugin/CMakeFiles/protoc-gen-struct_pb.dir/EnumFieldGenerator.cpp.o
[  1%] Building CXX object src/struct_pack/tests/CMakeFiles/test_serialize.dir/test_serialize.cpp.o
[  1%] Running cpp protocol buffer compiler on conformance/conformance.proto
[  2%] Running cpp protocol buffer compiler on google/protobuf/test_messages_proto2.proto
[  3%] Building CXX object src/struct_pb/conformance/CMakeFiles/conformance_test_runner.dir/binary_json_conformance_suite.cc.o
[  4%] Linking CXX executable ../../../../examples/serialize_example
[  4%] Built target serialize_example
[  5%] Building CXX object src/struct_pb/conformance/CMakeFiles/conformance_cpp.dir/conformance_cpp.cc.o
[  6%] Building CXX object src/struct_pb/protoc-plugin/CMakeFiles/protoc-gen-struct_pb.dir/EnumGenerator.cpp.o
[  6%] Building CXX object src/struct_pb/conformance/CMakeFiles/conformance_cpp.dir/conformance/conformance.pb.cc.o
[  6%] Building CXX object src/struct_pb/protoc-plugin/CMakeFiles/protoc-gen-struct_pb.dir/FieldGenerator.cpp.o
[  6%] Building CXX object src/struct_pb/conformance/CMakeFiles/conformance_test_runner.dir/conformance_test_runner.cc.o
[  7%] Building CXX object src/struct_pb/conformance/CMakeFiles/conformance_cpp.dir/google/protobuf/test_messages_proto2.pb.cc.o
[  8%] Building CXX object src/struct_pb/conformance/CMakeFiles/conformance_test_runner.dir/conformance_test_main.cc.o
[  9%] Building CXX object src/struct_pb/protoc-plugin/CMakeFiles/protoc-gen-struct_pb.dir/FileGenerator.cpp.o
[ 10%] Building CXX object src/struct_pb/conformance/CMakeFiles/conformance_test_runner.dir/conformance_test.cc.o
[ 10%] Building CXX object src/struct_pb/protoc-plugin/CMakeFiles/protoc-gen-struct_pb.dir/GeneratorBase.cpp.o
[ 10%] Building CXX object src/struct_pb/conformance/CMakeFiles/conformance_test_runner.dir/conformance/conformance.pb.cc.o
[ 11%] Building CXX object src/struct_pb/protoc-plugin/CMakeFiles/protoc-gen-struct_pb.dir/MapFieldGenerator.cpp.o
[ 12%] Building CXX object src/struct_pb/conformance/CMakeFiles/conformance_test_runner.dir/google/protobuf/test_messages_proto2.pb.cc.o
[ 12%] Building CXX object src/struct_pack/tests/CMakeFiles/test_serialize.dir/test_compile_time_calculate.cpp.o
[ 12%] Building CXX object src/struct_pb/protoc-plugin/CMakeFiles/protoc-gen-struct_pb.dir/MessageFieldGenerator.cpp.o
[ 13%] Building CXX object src/struct_pb/protoc-plugin/CMakeFiles/protoc-gen-struct_pb.dir/MessageGenerator.cpp.o
[ 14%] Building CXX object src/struct_pb/protoc-plugin/CMakeFiles/protoc-gen-struct_pb.dir/OneofFieldGenerator.cpp.o
[ 14%] Building CXX object src/struct_pb/conformance/CMakeFiles/conformance_cpp.dir/google/protobuf/test_messages_proto3.pb.cc.o
[ 15%] Building CXX object src/struct_pack/tests/CMakeFiles/test_serialize.dir/test_data_struct.cpp.o
[ 15%] Building CXX object src/struct_pb/protoc-plugin/CMakeFiles/protoc-gen-struct_pb.dir/PrimitiveFieldGenerator.cpp.o
[ 16%] Building CXX object src/struct_pb/protoc-plugin/CMakeFiles/protoc-gen-struct_pb.dir/StringFieldGenerator.cpp.o
[ 16%] Building CXX object src/struct_pb/conformance/CMakeFiles/conformance_test_runner.dir/google/protobuf/test_messages_proto3.pb.cc.o
[ 16%] Building CXX object src/struct_pb/protoc-plugin/CMakeFiles/protoc-gen-struct_pb.dir/StructGenerator.cpp.o
[ 17%] Building CXX object src/struct_pb/protoc-plugin/CMakeFiles/protoc-gen-struct_pb.dir/helpers.cpp.o
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/string:40,
                 from /root/yalantinglibs-fix_pmr/src/struct_pb/protoc-plugin/helpers.hpp:2,
                 from /root/yalantinglibs-fix_pmr/src/struct_pb/protoc-plugin/helpers.cpp:1:
In static member function ‘static constexpr int std::char_traits<char>::compare(const char_type*, const char_type*, std::size_t)’,
    inlined from ‘constexpr int std::basic_string_view<_CharT, _Traits>::compare(std::basic_string_view<_CharT, _Traits>) const [with _CharT = char; _Traits = std::char_traits<char>]’ at /opt/rh/devtoolset-11/root/usr/include/c++/11/string_view:315:34,
    inlined from ‘constexpr int std::basic_string_view<_CharT, _Traits>::compare(std::basic_string_view<_CharT, _Traits>::size_type, std::basic_string_view<_CharT, _Traits>::size_type, std::basic_string_view<_CharT, _Traits>) const [with _CharT = char; _Traits = std::char_traits<char>]’ at /opt/rh/devtoolset-11/root/usr/include/c++/11/string_view:323:50,
    inlined from ‘bool struct_pb::compiler::string_ends_with(std::string_view, std::string_view)’ at /root/yalantinglibs-fix_pmr/src/struct_pb/protoc-plugin/helpers.cpp:48:19,
    inlined from ‘std::string_view struct_pb::compiler::string_strip_suffix(std::string_view, std::string_view)’ at /root/yalantinglibs-fix_pmr/src/struct_pb/protoc-plugin/helpers.cpp:53:23:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/char_traits.h:389:32: warning: ‘int __builtin_memcmp_eq(const void*, const void*, long unsigned int)’ specified bound 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Wstringop-overread]
  389 |         return __builtin_memcmp(__s1, __s2, __n);
      |                ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/bits/basic_string.h:48,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/string:55,
                 from /root/yalantinglibs-fix_pmr/src/struct_pb/protoc-plugin/helpers.hpp:2,
                 from /root/yalantinglibs-fix_pmr/src/struct_pb/protoc-plugin/helpers.cpp:1:
/opt/rh/devtoolset-11/root/usr/include/c++/11/string_view: In function ‘std::string_view struct_pb::compiler::string_strip_suffix(std::string_view, std::string_view)’:
/opt/rh/devtoolset-11/root/usr/include/c++/11/string_view:308:34: note: source object allocated here
  308 |         return basic_string_view{_M_str + __pos, __rlen};
      |                                  ^~~~~~
[ 17%] Building CXX object src/struct_pb/protoc-plugin/CMakeFiles/protoc-gen-struct_pb.dir/main.cpp.o
[ 18%] Linking CXX executable protoc-gen-struct_pb
[ 18%] Built target protoc-gen-struct_pb
[ 18%] Building CXX object src/struct_json/examples/CMakeFiles/struct_json_example.dir/main.cpp.o
[ 19%] Linking CXX executable conformance_cpp
[ 20%] Built target conformance_cpp
[ 20%] Building CXX object src/struct_json/examples/CMakeFiles/struct_json_example_manual.dir/main.cpp.o
[ 21%] Linking CXX executable struct_json_example
[ 21%] Built target struct_json_example
[ 22%] Building CXX object src/coro_rpc/tests/CMakeFiles/test_rpc.dir/test_coro_rpc_server.cpp.o
In file included from /root/yalantinglibs-fix_pmr/include/easylog/appender.hpp:25,
                 from /root/yalantinglibs-fix_pmr/include/easylog/easylog.h:22,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:201:13: error: ‘string’ in namespace ‘std::pmr’ does not name a type
  201 |   std::pmr::string ss_{&resource_};
      |             ^~~~~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp: In member function ‘const char* easylog::record_t::get_message() const’:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:108:44: error: ‘ss_’ was not declared in this scope
  108 |   const char *get_message() const { return ss_.data(); }
      |                                            ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp: In member function ‘easylog::record_t& easylog::record_t::operator<<(const T&)’:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:124:7: error: ‘ss_’ was not declared in this scope
  124 |       ss_.append(temp, std::distance(temp, end));
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:127:7: error: ‘ss_’ was not declared in this scope
  127 |       ss_.push_back(data);
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:136:7: error: ‘ss_’ was not declared in this scope
  136 |       ss_.append(buf, std::distance(buf, ptr));
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:139:7: error: ‘ss_’ was not declared in this scope
  139 |       ss_.append(data);
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp: In member function ‘void easylog::record_t::printf_string_format(const char*, Args ...)’:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:160:15: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
  160 |     std::pmr::string buf{&resource};
      |               ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/string:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/stdexcept:39,
                 from /root/yalantinglibs-fix_pmr/thirdparty/async_simple/async_simple/Common.h:19,
                 from /root/yalantinglibs-fix_pmr/thirdparty/async_simple/async_simple/coro/Collect.h:19,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:16:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
In file included from /root/yalantinglibs-fix_pmr/include/easylog/appender.hpp:25,
                 from /root/yalantinglibs-fix_pmr/include/easylog/easylog.h:22,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:164:5: error: ‘buf’ was not declared in this scope
  164 |     buf.reserve(size + 1);
      |     ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:164:5: note: suggested alternatives:
In file included from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/socket_ops.hpp:372,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/socket_holder.hpp:20,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/reactive_socket_accept_op.hpp:26,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/reactive_socket_service.hpp:31,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/basic_socket.hpp:38,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/basic_datagram_socket.hpp:20,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio.hpp:26,
                 from /root/yalantinglibs-fix_pmr/include/asio_util/asio_coro_util.hpp:21,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:31,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/impl/socket_ops.ipp:708:15: note:   ‘asio::detail::socket_ops::buf’
  708 | typedef iovec buf;
      |               ^~~
In file included from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/reactive_descriptor_service.hpp:31,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/basic_readable_pipe.hpp:38,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio.hpp:32,
                 from /root/yalantinglibs-fix_pmr/include/asio_util/asio_coro_util.hpp:21,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:31,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/descriptor_ops.hpp:83:15: note:   ‘asio::detail::descriptor_ops::buf’
   83 | typedef iovec buf;
      |               ^~~
In file included from /root/yalantinglibs-fix_pmr/include/easylog/appender.hpp:25,
                 from /root/yalantinglibs-fix_pmr/include/easylog/easylog.h:22,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:169:5: error: ‘ss_’ was not declared in this scope
  169 |     ss_.append(buf);
      |     ^~~
In file included from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/root/yalantinglibs-fix_pmr/include/easylog/easylog.h: In member function ‘void easylog::logger<Id>::append_format(const easylog::record_t&)’:
/root/yalantinglibs-fix_pmr/include/easylog/easylog.h:92:15: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
   92 |     std::pmr::string str{&resource};
      |               ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/string:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/stdexcept:39,
                 from /root/yalantinglibs-fix_pmr/thirdparty/async_simple/async_simple/Common.h:19,
                 from /root/yalantinglibs-fix_pmr/thirdparty/async_simple/async_simple/coro/Collect.h:19,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:16:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
In file included from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/root/yalantinglibs-fix_pmr/include/easylog/easylog.h:96:5: error: ‘str’ was not declared in this scope; did you mean ‘std’?
   96 |     str.append(buf, len).append(" ");
      |     ^~~
      |     std
[ 23%] Linking CXX executable struct_json_example_manual
[ 23%] Built target struct_json_example_manual
[ 24%] Building CXX object src/coro_rpc/tests/CMakeFiles/test_coro_rpc_server.dir/test_coro_rpc_server.cpp.o
[ 24%] Building CXX object src/struct_pack/tests/CMakeFiles/test_serialize.dir/test_tuplet.cpp.o
In file included from /root/yalantinglibs-fix_pmr/include/easylog/appender.hpp:25,
                 from /root/yalantinglibs-fix_pmr/include/easylog/easylog.h:22,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:201:13: error: ‘string’ in namespace ‘std::pmr’ does not name a type
  201 |   std::pmr::string ss_{&resource_};
      |             ^~~~~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp: In member function ‘const char* easylog::record_t::get_message() const’:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:108:44: error: ‘ss_’ was not declared in this scope
  108 |   const char *get_message() const { return ss_.data(); }
      |                                            ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp: In member function ‘easylog::record_t& easylog::record_t::operator<<(const T&)’:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:124:7: error: ‘ss_’ was not declared in this scope
  124 |       ss_.append(temp, std::distance(temp, end));
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:127:7: error: ‘ss_’ was not declared in this scope
  127 |       ss_.push_back(data);
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:136:7: error: ‘ss_’ was not declared in this scope
  136 |       ss_.append(buf, std::distance(buf, ptr));
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:139:7: error: ‘ss_’ was not declared in this scope
  139 |       ss_.append(data);
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp: In member function ‘void easylog::record_t::printf_string_format(const char*, Args ...)’:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:160:15: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
  160 |     std::pmr::string buf{&resource};
      |               ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/string:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/stdexcept:39,
                 from /root/yalantinglibs-fix_pmr/thirdparty/async_simple/async_simple/Common.h:19,
                 from /root/yalantinglibs-fix_pmr/thirdparty/async_simple/async_simple/coro/Collect.h:19,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:16:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
In file included from /root/yalantinglibs-fix_pmr/include/easylog/appender.hpp:25,
                 from /root/yalantinglibs-fix_pmr/include/easylog/easylog.h:22,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:164:5: error: ‘buf’ was not declared in this scope
  164 |     buf.reserve(size + 1);
      |     ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:164:5: note: suggested alternatives:
In file included from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/socket_ops.hpp:372,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/socket_holder.hpp:20,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/reactive_socket_accept_op.hpp:26,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/reactive_socket_service.hpp:31,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/basic_socket.hpp:38,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/basic_datagram_socket.hpp:20,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio.hpp:26,
                 from /root/yalantinglibs-fix_pmr/include/asio_util/asio_coro_util.hpp:21,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:31,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/impl/socket_ops.ipp:708:15: note:   ‘asio::detail::socket_ops::buf’
  708 | typedef iovec buf;
      |               ^~~
In file included from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/reactive_descriptor_service.hpp:31,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/basic_readable_pipe.hpp:38,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio.hpp:32,
                 from /root/yalantinglibs-fix_pmr/include/asio_util/asio_coro_util.hpp:21,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:31,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/descriptor_ops.hpp:83:15: note:   ‘asio::detail::descriptor_ops::buf’
   83 | typedef iovec buf;
      |               ^~~
In file included from /root/yalantinglibs-fix_pmr/include/easylog/appender.hpp:25,
                 from /root/yalantinglibs-fix_pmr/include/easylog/easylog.h:22,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:169:5: error: ‘ss_’ was not declared in this scope
  169 |     ss_.append(buf);
      |     ^~~
In file included from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/root/yalantinglibs-fix_pmr/include/easylog/easylog.h: In member function ‘void easylog::logger<Id>::append_format(const easylog::record_t&)’:
/root/yalantinglibs-fix_pmr/include/easylog/easylog.h:92:15: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
   92 |     std::pmr::string str{&resource};
      |               ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/string:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/stdexcept:39,
                 from /root/yalantinglibs-fix_pmr/thirdparty/async_simple/async_simple/Common.h:19,
                 from /root/yalantinglibs-fix_pmr/thirdparty/async_simple/async_simple/coro/Collect.h:19,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:16:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
In file included from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_server.cpp:19:
/root/yalantinglibs-fix_pmr/include/easylog/easylog.h:96:5: error: ‘str’ was not declared in this scope; did you mean ‘std’?
   96 |     str.append(buf, len).append(" ");
      |     ^~~
      |     std
[ 25%] Linking CXX executable conformance_test_runner
[ 25%] Built target conformance_test_runner
[ 26%] Building CXX object src/coro_rpc/tests/CMakeFiles/test_coro_rpc_client.dir/test_coro_rpc_client.cpp.o
[ 27%] Building CXX object src/struct_pack/tests/CMakeFiles/test_serialize.dir/test_alignas.cpp.o
make[2]: *** [src/coro_rpc/tests/CMakeFiles/test_rpc.dir/build.make:76:src/coro_rpc/tests/CMakeFiles/test_rpc.dir/test_coro_rpc_server.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:854:src/coro_rpc/tests/CMakeFiles/test_rpc.dir/all] 错误 2
make[1]: *** 正在等待未完成的任务....
[ 27%] Building CXX object src/coro_rpc/tests/CMakeFiles/test_coro_rpc_client.dir/rpc_service.cpp.o
In file included from /root/yalantinglibs-fix_pmr/include/easylog/appender.hpp:25,
                 from /root/yalantinglibs-fix_pmr/include/easylog/easylog.h:22,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_client.cpp:20:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:201:13: error: ‘string’ in namespace ‘std::pmr’ does not name a type
  201 |   std::pmr::string ss_{&resource_};
      |             ^~~~~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp: In member function ‘const char* easylog::record_t::get_message() const’:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:108:44: error: ‘ss_’ was not declared in this scope
  108 |   const char *get_message() const { return ss_.data(); }
      |                                            ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp: In member function ‘easylog::record_t& easylog::record_t::operator<<(const T&)’:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:124:7: error: ‘ss_’ was not declared in this scope
  124 |       ss_.append(temp, std::distance(temp, end));
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:127:7: error: ‘ss_’ was not declared in this scope
  127 |       ss_.push_back(data);
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:136:7: error: ‘ss_’ was not declared in this scope
  136 |       ss_.append(buf, std::distance(buf, ptr));
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:139:7: error: ‘ss_’ was not declared in this scope
  139 |       ss_.append(data);
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp: In member function ‘void easylog::record_t::printf_string_format(const char*, Args ...)’:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:160:15: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
  160 |     std::pmr::string buf{&resource};
      |               ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/string:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/stdexcept:39,
                 from /root/yalantinglibs-fix_pmr/thirdparty/async_simple/async_simple/Common.h:19,
                 from /root/yalantinglibs-fix_pmr/thirdparty/async_simple/async_simple/coro/Lazy.h:19,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_client.cpp:16:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
In file included from /root/yalantinglibs-fix_pmr/include/easylog/appender.hpp:25,
                 from /root/yalantinglibs-fix_pmr/include/easylog/easylog.h:22,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_client.cpp:20:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:164:5: error: ‘buf’ was not declared in this scope
  164 |     buf.reserve(size + 1);
      |     ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:164:5: note: suggested alternatives:
In file included from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/socket_ops.hpp:372,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/socket_holder.hpp:20,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/reactive_socket_accept_op.hpp:26,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/reactive_socket_service.hpp:31,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/basic_socket.hpp:38,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/basic_datagram_socket.hpp:20,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio.hpp:26,
                 from /root/yalantinglibs-fix_pmr/include/asio_util/asio_coro_util.hpp:21,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:31,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_client.cpp:20:
/root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/impl/socket_ops.ipp:708:15: note:   ‘asio::detail::socket_ops::buf’
  708 | typedef iovec buf;
      |               ^~~
In file included from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/reactive_descriptor_service.hpp:31,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio/basic_readable_pipe.hpp:38,
                 from /root/yalantinglibs-fix_pmr/thirdparty/asio/asio.hpp:32,
                 from /root/yalantinglibs-fix_pmr/include/asio_util/asio_coro_util.hpp:21,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:31,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_client.cpp:20:
/root/yalantinglibs-fix_pmr/thirdparty/asio/asio/detail/descriptor_ops.hpp:83:15: note:   ‘asio::detail::descriptor_ops::buf’
   83 | typedef iovec buf;
      |               ^~~
In file included from /root/yalantinglibs-fix_pmr/include/easylog/appender.hpp:25,
                 from /root/yalantinglibs-fix_pmr/include/easylog/easylog.h:22,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_client.cpp:20:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:169:5: error: ‘ss_’ was not declared in this scope
  169 |     ss_.append(buf);
      |     ^~~
In file included from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_client.cpp:20:
/root/yalantinglibs-fix_pmr/include/easylog/easylog.h: In member function ‘void easylog::logger<Id>::append_format(const easylog::record_t&)’:
/root/yalantinglibs-fix_pmr/include/easylog/easylog.h:92:15: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
   92 |     std::pmr::string str{&resource};
      |               ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/string:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/stdexcept:39,
                 from /root/yalantinglibs-fix_pmr/thirdparty/async_simple/async_simple/Common.h:19,
                 from /root/yalantinglibs-fix_pmr/thirdparty/async_simple/async_simple/coro/Lazy.h:19,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_client.cpp:16:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
In file included from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/common_service.hpp:18,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc/coro_rpc_client.hpp:33,
                 from /root/yalantinglibs-fix_pmr/include/coro_rpc/coro_rpc_client.hpp:17,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/test_coro_rpc_client.cpp:20:
/root/yalantinglibs-fix_pmr/include/easylog/easylog.h:96:5: error: ‘str’ was not declared in this scope; did you mean ‘std’?
   96 |     str.append(buf, len).append(" ");
      |     ^~~
      |     std
[ 28%] Building CXX object src/struct_pack/tests/CMakeFiles/test_serialize.dir/test_pragma_pack.cpp.o
In file included from /root/yalantinglibs-fix_pmr/include/easylog/appender.hpp:25,
                 from /root/yalantinglibs-fix_pmr/include/easylog/easylog.h:22,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/rpc_service.cpp:16:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:201:13: error: ‘string’ in namespace ‘std::pmr’ does not name a type
  201 |   std::pmr::string ss_{&resource_};
      |             ^~~~~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp: In member function ‘const char* easylog::record_t::get_message() const’:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:108:44: error: ‘ss_’ was not declared in this scope
  108 |   const char *get_message() const { return ss_.data(); }
      |                                            ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp: In member function ‘easylog::record_t& easylog::record_t::operator<<(const T&)’:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:124:7: error: ‘ss_’ was not declared in this scope
  124 |       ss_.append(temp, std::distance(temp, end));
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:127:7: error: ‘ss_’ was not declared in this scope
  127 |       ss_.push_back(data);
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:136:7: error: ‘ss_’ was not declared in this scope
  136 |       ss_.append(buf, std::distance(buf, ptr));
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:139:7: error: ‘ss_’ was not declared in this scope
  139 |       ss_.append(data);
      |       ^~~
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp: In member function ‘void easylog::record_t::printf_string_format(const char*, Args ...)’:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:160:15: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
  160 |     std::pmr::string buf{&resource};
      |               ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/iosfwd:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/string_view:40,
                 from /root/yalantinglibs-fix_pmr/include/easylog/easylog.h:18,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/rpc_service.cpp:16:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
In file included from /root/yalantinglibs-fix_pmr/include/easylog/appender.hpp:25,
                 from /root/yalantinglibs-fix_pmr/include/easylog/easylog.h:22,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/rpc_service.cpp:16:
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:164:5: error: ‘buf’ was not declared in this scope; did you mean ‘buf_’?
  164 |     buf.reserve(size + 1);
      |     ^~~
      |     buf_
/root/yalantinglibs-fix_pmr/include/easylog/record.hpp:169:5: error: ‘ss_’ was not declared in this scope
  169 |     ss_.append(buf);
      |     ^~~
In file included from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/rpc_service.cpp:16:
/root/yalantinglibs-fix_pmr/include/easylog/easylog.h: In member function ‘void easylog::logger<Id>::append_format(const easylog::record_t&)’:
/root/yalantinglibs-fix_pmr/include/easylog/easylog.h:92:15: error: ‘string’ is not a member of ‘std::pmr’; did you mean ‘std::string’?
   92 |     std::pmr::string str{&resource};
      |               ^~~~~~
In file included from /opt/rh/devtoolset-11/root/usr/include/c++/11/iosfwd:39,
                 from /opt/rh/devtoolset-11/root/usr/include/c++/11/string_view:40,
                 from /root/yalantinglibs-fix_pmr/include/easylog/easylog.h:18,
                 from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/rpc_service.cpp:16:
/opt/rh/devtoolset-11/root/usr/include/c++/11/bits/stringfwd.h:79:33: note: ‘std::string’ declared here
   79 |   typedef basic_string<char>    string;
      |                                 ^~~~~~
In file included from /root/yalantinglibs-fix_pmr/src/coro_rpc/tests/rpc_service.cpp:16:
/root/yalantinglibs-fix_pmr/include/easylog/easylog.h:96:5: error: ‘str’ was not declared in this scope; did you mean ‘std’?
   96 |     str.append(buf, len).append(" ");
      |     ^~~
      |     std
[ 28%] Building CXX object src/struct_pack/tests/CMakeFiles/test_serialize.dir/test_pragma_pack_and_alignas_mix.cpp.o
make[2]: *** [src/coro_rpc/tests/CMakeFiles/test_coro_rpc_server.dir/build.make:76:src/coro_rpc/tests/CMakeFiles/test_coro_rpc_server.dir/test_coro_rpc_server.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:880:src/coro_rpc/tests/CMakeFiles/test_coro_rpc_server.dir/all] 错误 2
[ 29%] Building CXX object src/coro_rpc/tests/CMakeFiles/test_coro_rpc_client.dir/main.cpp.o
make[2]: *** [src/coro_rpc/tests/CMakeFiles/test_coro_rpc_client.dir/build.make:90:src/coro_rpc/tests/CMakeFiles/test_coro_rpc_client.dir/rpc_service.cpp.o] 错误 1
make[2]: *** 正在等待未完成的任务....
[ 30%] Building CXX object src/struct_pack/tests/CMakeFiles/test_serialize.dir/test_varint.cpp.o
make[2]: *** [src/coro_rpc/tests/CMakeFiles/test_coro_rpc_client.dir/build.make:76:src/coro_rpc/tests/CMakeFiles/test_coro_rpc_client.dir/test_coro_rpc_client.cpp.o] 错误 1
[ 30%] Building CXX object src/struct_pack/tests/CMakeFiles/test_serialize.dir/test_stream.cpp.o
[ 31%] Building CXX object src/struct_pack/tests/CMakeFiles/test_serialize.dir/test_compatible.cpp.o
make[1]: *** [CMakeFiles/Makefile2:906:src/coro_rpc/tests/CMakeFiles/test_coro_rpc_client.dir/all] 错误 2
[ 31%] Building CXX object src/struct_pack/tests/CMakeFiles/test_serialize.dir/main.cpp.o
[ 32%] Linking CXX executable ../../../tests/test_serialize
[ 32%] Built target test_serialize
make: *** [Makefile:146:all] 错误 2
qicosmos commented 1 year ago

pr更新了,麻烦再拉一下测试一下。

vbirds commented 1 year ago

pr更新了,麻烦再拉一下测试一下。

拉了分支,可以编译通过了

qicosmos commented 1 year ago

好的,稍后合并到主干。