Build errors for C++ 15 or higher
Author: jijianwenCreated Sep 17, 2026Updated Sep 17, 2026
When running 'building.sh -j2' on my system, I got the following two errors: 1.
[ 35%] Building CXX object examples/asio/chat/CMakeFiles/asio_chat_loadtest.dir/[loadtest.cc](https://loadtest.cc/).o
In file included from /usr/include/c++/15/bits/alloc_traits.h:33,
from /usr/include/c++/15/ext/alloc_traits.h:36,
from /usr/include/c++/15/bits/basic_string.h:41,
from /usr/include/c++/15/string:56,
from /home/jijianwen/wks/repos/muduo/muduo/base/Types.h:6,
from /home/jijianwen/wks/repos/muduo/muduo/base/StringPiece.h:46,
from /home/jijianwen/wks/repos/muduo/muduo/base/LogStream.h:10,
from /home/jijianwen/wks/repos/muduo/muduo/base/Logging.h:9,
from /home/jijianwen/wks/repos/muduo/examples/asio/chat/codec.h:4,
from /home/jijianwen/wks/repos/muduo/examples/asio/chat/[client.cc](https://client.cc/):1:
In function ‘void std::_Construct(_Tp*, _Args&& ...) [with _Tp = char; _Args = {}]’,
inlined from ‘static _ForwardIterator std::__uninitialized_default_n_1<true>::__uninit_default_n(_ForwardIterator, _Size) [with _ForwardIterator = char*; _Size = long unsigned int]’ at /usr/include/c++/15/bits/stl_uninitialized.h:894:23,
inlined from ‘static _ForwardIterator std::__uninitialized_default_n_1<true>::__uninit_default_n(_ForwardIterator, _Size) [with _ForwardIterator = char*; _Size = long unsigned int]’ at /usr/include/c++/15/bits/stl_uninitialized.h:888:9,
inlined from ‘_ForwardIterator std::__uninitialized_default_n(_ForwardIterator, _Size) [with _ForwardIterator = char*; _Size = long unsigned int]’ at /usr/include/c++/15/bits/stl_uninitialized.h:947:20,
inlined from ‘_ForwardIterator std::__uninitialized_default_n_a(_ForwardIterator, _Size, allocator<_Tp2>&) [with _ForwardIterator = char*; _Size = long unsigned int; _Tp = char]’ at /usr/include/c++/15/bits/stl_uninitialized.h:1002:44,
inlined from ‘void std::vector<_Tp, _Alloc>::_M_default_append(size_type) [with _Tp = char; _Alloc = std::allocator<char>]’ at /usr/include/c++/15/bits/vector.tcc:776:35,
inlined from ‘void std::vector<_Tp, _Alloc>::resize(size_type) [with _Tp = char; _Alloc = std::allocator<char>]’ at /usr/include/c++/15/bits/stl_vector.h:1146:21,
inlined from ‘void muduo::net::Buffer::makeSpace(size_t)’ at /home/jijianwen/wks/repos/muduo/muduo/net/Buffer.h:395:21,
inlined from ‘void muduo::net::Buffer::ensureWritableBytes(size_t)’ at /home/jijianwen/wks/repos/muduo/muduo/net/Buffer.h:198:16,
inlined from ‘void muduo::net::Buffer::append(const char*, size_t)’ at /home/jijianwen/wks/repos/muduo/muduo/net/Buffer.h:184:24,
inlined from ‘void LengthHeaderCodec::send(muduo::net::TcpConnection*, const muduo::StringPiece&)’ at /home/jijianwen/wks/repos/muduo/examples/asio/chat/codec.h:56:15,
inlined from ‘void ChatClient::write(const muduo::StringPiece&)’ at /home/jijianwen/wks/repos/muduo/examples/asio/chat/[client.cc](https://client.cc/):44:18,
inlined from ‘int main(int, char**)’ at /home/jijianwen/wks/repos/muduo/examples/asio/chat/[client.cc](https://client.cc/):93:19:
/usr/include/c++/15/bits/stl_construct.h:133:7: error: array subscript 1032 is outside array bounds of ‘char [1032]’ [-Werror=array-bounds=]
133 | ::new(static_cast<void*>(__p)) _Tp(std::forward<_Args>(__args)...);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/15/x86_64-redhat-linux/bits/c++allocator.h:33,
from /usr/include/c++/15/bits/allocator.h:46,
from /usr/include/c++/15/string:45:
In member function ‘_Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = char]’,
inlined from ‘static _Tp* std::allocator_traits<std::allocator<_CharT> >::allocate(allocator_type&, size_type) [with _Tp = char]’ at /usr/include/c++/15/bits/alloc_traits.h:614:28,
inlined from ‘std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = char; _Alloc = std::allocator<char>]’ at /usr/include/c++/15/bits/stl_vector.h:387:33,
inlined from ‘void std::_Vector_base<_Tp, _Alloc>::_M_create_storage(std::size_t) [with _Tp = char; _Alloc = std::allocator<char>]’ at /usr/include/c++/15/bits/stl_vector.h:405:44,
inlined from ‘std::_Vector_base<_Tp, _Alloc>::_Vector_base(std::size_t, const allocator_type&) [with _Tp = char; _Alloc = std::allocator<char>]’ at /usr/include/c++/15/bits/stl_vector.h:341:26,
inlined from ‘std::vector<_Tp, _Alloc>::vector(size_type, const allocator_type&) [with _Tp = char; _Alloc = std::allocator<char>]’ at /usr/include/c++/15/bits/stl_vector.h:587:47,
inlined from ‘muduo::net::Buffer::Buffer(size_t)’ at /home/jijianwen/wks/repos/muduo/muduo/net/Buffer.h:49:7,
inlined from ‘void LengthHeaderCodec::send(muduo::net::TcpConnection*, const muduo::StringPiece&)’ at /home/jijianwen/wks/repos/muduo/examples/asio/chat/codec.h:55:24,
inlined from ‘void ChatClient::write(const muduo::StringPiece&)’ at /home/jijianwen/wks/repos/muduo/examples/asio/chat/[client.cc](https://client.cc/):44:18,
inlined from ‘int main(int, char**)’ at /home/jijianwen/wks/repos/muduo/examples/asio/chat/[client.cc](https://client.cc/):93:19:
/usr/include/c++/15/bits/new_allocator.h:151:73: note: at offset 1032 into object of size 1032 allocated by ‘operator new’
151 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
| ^
cc1plus: all warnings being treated as errors
make[2]: *** [examples/asio/chat/CMakeFiles/asio_chat_client.dir/build.make:79: examples/asio/chat/CMakeFiles/asio_chat_client.dir/[client.cc](https://client.cc/).o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3285: examples/asio/chat/CMakeFiles/asio_chat_client.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
In file included from /usr/include/c++/15/bits/alloc_traits.h:33,
from /usr/include/c++/15/ext/alloc_traits.h:36,
from /usr/include/c++/15/bits/basic_string.h:41,
from /usr/include/c++/15/string:56,
from /home/jijianwen/wks/repos/muduo/muduo/base/Types.h:6,
from /home/jijianwen/wks/repos/muduo/muduo/base/StringPiece.h:46,
from /home/jijianwen/wks/repos/muduo/muduo/base/LogStream.h:10,
from /home/jijianwen/wks/repos/muduo/muduo/base/Logging.h:9,
from /home/jijianwen/wks/repos/muduo/examples/asio/chat/codec.h:4,
from /home/jijianwen/wks/repos/muduo/examples/asio/chat/[loadtest.cc](https://loadtest.cc/):1:
In function ‘void std::_Construct(_Tp*, _Args&& ...) [with _Tp = char; _Args = {}]’,
inlined from ‘static _ForwardIterator std::__uninitialized_default_n_1<true>::__uninit_default_n(_ForwardIterator, _Size) [with _ForwardIterator = char*; _Size = long unsigned int]’ at /usr/include/c++/15/bits/stl_uninitialized.h:894:23,
inlined from ‘static _ForwardIterator std::__uninitialized_default_n_1<true>::__uninit_default_n(_ForwardIterator, _Size) [with _ForwardIterator = char*; _Size = long unsigned int]’ at /usr/include/c++/15/bits/stl_uninitialized.h:888:9,
inlined from ‘_ForwardIterator std::__uninitialized_default_n(_ForwardIterator, _Size) [with _ForwardIterator = char*; _Size = long unsigned int]’ at /usr/include/c++/15/bits/stl_uninitialized.h:947:20,
inlined from ‘_ForwardIterator std::__uninitialized_default_n_a(_ForwardIterator, _Size, allocator<_Tp2>&) [with _ForwardIterator = char*; _Size = long unsigned int; _Tp = char]’ at /usr/include/c++/15/bits/stl_uninitialized.h:1002:44,
inlined from ‘void std::vector<_Tp, _Alloc>::_M_default_append(size_type) [with _Tp = char; _Alloc = std::allocator<char>]’ at /usr/include/c++/15/bits/vector.tcc:776:35,
inlined from ‘void std::vector<_Tp, _Alloc>::resize(size_type) [with _Tp = char; _Alloc = std::allocator<char>]’ at /usr/include/c++/15/bits/stl_vector.h:1146:21,
inlined from ‘void muduo::net::Buffer::makeSpace(size_t)’ at /home/jijianwen/wks/repos/muduo/muduo/net/Buffer.h:395:21,
inlined from ‘void muduo::net::Buffer::ensureWritableBytes(size_t)’ at /home/jijianwen/wks/repos/muduo/muduo/net/Buffer.h:198:16,
inlined from ‘void muduo::net::Buffer::append(const char*, size_t)’ at /home/jijianwen/wks/repos/muduo/muduo/net/Buffer.h:184:24,
inlined from ‘void LengthHeaderCodec::send(muduo::net::TcpConnection*, const muduo::StringPiece&)’ at /home/jijianwen/wks/repos/muduo/examples/asio/chat/codec.h:56:15,
inlined from ‘void ChatClient::send()’ at /home/jijianwen/wks/repos/muduo/examples/asio/chat/[loadtest.cc](https://loadtest.cc/):96:16:
/usr/include/c++/15/bits/stl_construct.h:133:7: error: array subscript 1032 is outside array bounds of ‘char [1032]’ [-Werror=array-bounds=]
133 | ::new(static_cast<void*>(__p)) _Tp(std::forward<_Args>(__args)...);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/15/x86_64-redhat-linux/bits/c++allocator.h:33,
from /usr/include/c++/15/bits/allocator.h:46,
from /usr/include/c++/15/string:45:
In member function ‘_Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = char]’,
inlined from ‘static _Tp* std::allocator_traits<std::allocator<_CharT> >::allocate(allocator_type&, size_type) [with _Tp = char]’ at /usr/include/c++/15/bits/alloc_traits.h:614:28,
inlined from ‘std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = char; _Alloc = std::allocator<char>]’ at /usr/include/c++/15/bits/stl_vector.h:387:33,
inlined from ‘void std::_Vector_base<_Tp, _Alloc>::_M_create_storage(std::size_t) [with _Tp = char; _Alloc = std::allocator<char>]’ at /usr/include/c++/15/bits/stl_vector.h:405:44,
inlined from ‘std::_Vector_base<_Tp, _Alloc>::_Vector_base(std::size_t, const allocator_type&) [with _Tp = char; _Alloc = std::allocator<char>]’ at /usr/include/c++/15/bits/stl_vector.h:341:26,
inlined from ‘std::vector<_Tp, _Alloc>::vector(size_type, const allocator_type&) [with _Tp = char; _Alloc = std::allocator<char>]’ at /usr/include/c++/15/bits/stl_vector.h:587:47,
inlined from ‘muduo::net::Buffer::Buffer(size_t)’ at /home/jijianwen/wks/repos/muduo/muduo/net/Buffer.h:49:7,
inlined from ‘void LengthHeaderCodec::send(muduo::net::TcpConnection*, const muduo::StringPiece&)’ at /home/jijianwen/wks/repos/muduo/examples/asio/chat/codec.h:55:24,
inlined from ‘void ChatClient::send()’ at /home/jijianwen/wks/repos/muduo/examples/asio/chat/[loadtest.cc](https://loadtest.cc/):96:16:
/usr/include/c++/15/bits/new_allocator.h:151:73: note: at offset 1032 into object of size 1032 allocated by ‘operator new’
151 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
| ^
cc1plus: all warnings being treated as errors
make[2]: *** [examples/asio/chat/CMakeFiles/asio_chat_loadtest.dir/build.make:79: examples/asio/chat/CMakeFiles/asio_chat_loadtest.dir/[loadtest.cc](https://loadtest.cc/).o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3318: examples/asio/chat/CMakeFiles/asio_chat_loadtest.dir/all] Error 2
make: *** [Makefile:146: all] Error 2- After fixing the issue above, I encountered another error as below:
[ 42%] Linking CXX executable ../../../bin/channel_test
/home/jijianwen/wks/repos/muduo/muduo/net/http/HttpResponse.cc: In member function ‘v
oid muduo::net::HttpResponse::appendToBuffer(muduo::net::Buffer*) const’:
/home/jijianwen/wks/repos/muduo/muduo/net/http/HttpResponse.cc:32:48: error: ‘%zd’ di
rective output may be truncated writing between 1 and 19 bytes into a region of size
[-Werror=format-truncation=]
| snprintf(buf, sizeof buf, "Content-Length: %zd\r\n", body_.size());
| ^~~
/home/jijianwen/wks/repos/muduo/muduo/net/http/HttpResponse.cc:32:31: note: directive
argument in the range [0, 9223372036854775806]
| snprintf(buf, sizeof buf, "Content-Length: %zd\r\n", body_.size());
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/jijianwen/wks/repos/muduo/muduo/net/http/HttpResponse.cc:32:13: note: ‘snprintf
output between 20 and 38 bytes into a destination of size 32
| snprintf(buf, sizeof buf, "Content-Length: %zd\r\n", body_.size());
| ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 42%] Built target channel_test
[ 43%] Building CXX object muduo/net/tests/CMakeFiles/echoserver_unittest.dir/EchoSer
ver_unittest.cc.o
cc1plus: all warnings being treated as errors
make[2]: *** [muduo/net/http/CMakeFiles/muduo_http.dir/build.make:93: muduo/net/http/
CMakeFiles/muduo_http.dir/HttpResponse.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2356: muduo/net/http/CMakeFiles/muduo_http.dir/all
] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 43%] Linking CXX executable ../../../bin/echoserver_unittest
[ 43%] Built target echoserver_unittest
make: *** [Makefile:146: all] Error 2Linux distro and version? x86 or ARM? 32-bit or 64-bit?
Fedora 42 x86_64 cmake-3.31.11-1.fc42.x86_64 boost-1.83.0-12.fc42.x86_64
Branch (cpp98/cpp11/cpp17) and version of muduo?
master
g++ info
$ g++ -dM -E -x c++ /dev/null | grep -F __cplusplus
#define __cplusplus 201703L jijianwen muduo$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/15/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,obj
c,obj-c++,ada,go,d,m2,cobol,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/
share/info --with-bugurl=https://bugzilla.redhat.com/ --enable-shared --enable-thread
s=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa
_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-bui
ld-id --with-gcc-major-version-only --enable-libstdcxx-backtrace --with-libstdcxx-zon
einfo=/usr/share/zoneinfo --with-linker-hash-style=gnu --enable-plugin --enable-initf
ini-array --with-isl=/builddir/build/BUILD/gcc-15.2.1-build/gcc-15.2.1-20260123/obj-x
86_64-redhat-linux/isl-install --enable-offload-targets=nvptx-none,amdgcn-amdhsa --en
able-offload-defaulted --without-cuda-driver --enable-gnu-indirect-function --enable-
cet --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux --with-build-
config=bootstrap-lto --enable-link-serialization=1 --disable-libssp
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 15.2.1 20260123 (Red Hat 15.2.1-7) (GCC)
Source: chenshuo/muduo