#734·muduo

ttcp_asio_async.cc compilation failure with Boost >= 1.74

Author: Heath-WrongCreated Feb 26, 2026Updated Feb 26, 2026

Environment:

  • OS: Ubuntu 24.04.3 LTS
  • Compiler: GCC 13.3.0
  • Boost: 1.83.0
  • Branch: cpp17

[Asio 1.18.0 / Boost 1.74]

bash
~/study/muduo$ ./build.sh
++ pwd
+ SOURCE_DIR=/home/wangming/study/muduo
+ BUILD_DIR=../build
+ BUILD_TYPE=release
+ INSTALL_DIR=../release-install-cpp17
+ CXX=g++
+ ln -sf ../build/release-cpp17/compile_commands.json
+ mkdir -p ../build/release-cpp17
+ cd ../build/release-cpp17
+ cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=../release-install-cpp17 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON /home/wangming/study/muduo
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.


-- Could NOT find Protobuf (missing: Protobuf_LIBRARIES Protobuf_INCLUDE_DIR) 
-- found curl
-- found zlib
-- CXX_FLAGS = -g -DCHECK_PTHREAD_RETURN_VALUE -D_FILE_OFFSET_BITS=64 -Wall -Wextra -Werror -Wconversion -Wno-unused-parameter -Wold-style-cast 
-Woverloaded-virtual -Wpointer-arith -Wshadow -Wwrite-strings -march=native -std=c++17 -rdynamic -O2 -DNDEBUG                                   -- Configuring done (0.7s)
-- Generating done (0.4s)
-- Build files have been written to: /home/wangming/study/build/release-cpp17
+ make
[  0%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/AsyncLogging.cc.o
[  0%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/Condition.cc.o
[  0%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/CountDownLatch.cc.o
[  1%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/CurrentThread.cc.o
[  1%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/Date.cc.o
[  1%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/Exception.cc.o
[  2%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/FileUtil.cc.o
[  2%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/LogFile.cc.o
[  2%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/Logging.cc.o
[  2%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/LogStream.cc.o
[  3%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/ProcessInfo.cc.o
[  3%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/Timestamp.cc.o
[  3%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/TimeZone.cc.o
[  3%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/Thread.cc.o
[  5%] Building CXX object muduo/base/CMakeFiles/muduo_base.dir/ThreadPool.cc.o
[  5%] Linking CXX static library ../../lib/libmuduo_base.a
[  5%] Built target muduo_base
[  5%] Building CXX object muduo/base/tests/CMakeFiles/asynclogging_test.dir/AsyncLogging_test.cc.o
[  5%] Linking CXX executable ../../../bin/asynclogging_test
[  5%] Built target asynclogging_test
[  6%] Building CXX object muduo/base/tests/CMakeFiles/atomic_unittest.dir/Atomic_unittest.cc.o
[  6%] Linking CXX executable ../../../bin/atomic_unittest
[  6%] Built target atomic_unittest
[  6%] Building CXX object muduo/base/tests/CMakeFiles/blockingqueue_test.dir/BlockingQueue_test.cc.o
[  6%] Linking CXX executable ../../../bin/blockingqueue_test
[  6%] Built target blockingqueue_test
[  7%] Building CXX object muduo/base/tests/CMakeFiles/blockingqueue_bench.dir/BlockingQueue_bench.cc.o
[  7%] Linking CXX executable ../../../bin/blockingqueue_bench
[  7%] Built target blockingqueue_bench
[  8%] Building CXX object muduo/base/tests/CMakeFiles/boundedblockingqueue_test.dir/BoundedBlockingQueue_test.cc.o
[  8%] Linking CXX executable ../../../bin/boundedblockingqueue_test
[  8%] Built target boundedblockingqueue_test
[  8%] Building CXX object muduo/base/tests/CMakeFiles/date_unittest.dir/Date_unittest.cc.o
[  8%] Linking CXX executable ../../../bin/date_unittest
[  8%] Built target date_unittest
[  8%] Building CXX object muduo/base/tests/CMakeFiles/exception_test.dir/Exception_test.cc.o
[ 10%] Linking CXX executable ../../../bin/exception_test
[ 10%] Built target exception_test
[ 10%] Building CXX object muduo/base/tests/CMakeFiles/fileutil_test.dir/FileUtil_test.cc.o
[ 11%] Linking CXX executable ../../../bin/fileutil_test
[ 11%] Built target fileutil_test
[ 11%] Building CXX object muduo/base/tests/CMakeFiles/fork_test.dir/Fork_test.cc.o
[ 11%] Linking CXX executable ../../../bin/fork_test
[ 11%] Built target fork_test
[ 11%] Building CXX object muduo/base/tests/CMakeFiles/gzipfile_test.dir/GzipFile_test.cc.o
[ 12%] Linking CXX executable ../../../bin/gzipfile_test
[ 12%] Built target gzipfile_test
[ 12%] Building CXX object muduo/base/tests/CMakeFiles/logfile_test.dir/LogFile_test.cc.o
[ 12%] Linking CXX executable ../../../bin/logfile_test
[ 12%] Built target logfile_test
[ 12%] Building CXX object muduo/base/tests/CMakeFiles/logging_test.dir/Logging_test.cc.o
[ 13%] Linking CXX executable ../../../bin/logging_test
[ 13%] Built target logging_test
[ 13%] Building CXX object muduo/base/tests/CMakeFiles/logstream_bench.dir/LogStream_bench.cc.o
[ 13%] Linking CXX executable ../../../bin/logstream_bench
[ 13%] Built target logstream_bench
[ 13%] Building CXX object muduo/base/tests/CMakeFiles/logstream_test.dir/LogStream_test.cc.o
[ 15%] Linking CXX executable ../../../bin/logstream_test
[ 15%] Built target logstream_test
[ 16%] Building CXX object muduo/base/tests/CMakeFiles/mutex_test.dir/Mutex_test.cc.o
[ 16%] Linking CXX executable ../../../bin/mutex_test
[ 16%] Built target mutex_test
[ 16%] Building CXX object muduo/base/tests/CMakeFiles/processinfo_test.dir/ProcessInfo_test.cc.o
[ 17%] Linking CXX executable ../../../bin/processinfo_test
[ 17%] Built target processinfo_test
[ 17%] Building CXX object muduo/base/tests/CMakeFiles/singleton_test.dir/Singleton_test.cc.o
[ 18%] Linking CXX executable ../../../bin/singleton_test
[ 18%] Built target singleton_test
[ 18%] Building CXX object muduo/base/tests/CMakeFiles/singleton_threadlocal_test.dir/SingletonThreadLocal_test.cc.o
[ 18%] Linking CXX executable ../../../bin/singleton_threadlocal_test
[ 18%] Built target singleton_threadlocal_test
[ 20%] Building CXX object muduo/base/tests/CMakeFiles/thread_bench.dir/Thread_bench.cc.o
[ 20%] Linking CXX executable ../../../bin/thread_bench
[ 20%] Built target thread_bench
[ 20%] Building CXX object muduo/base/tests/CMakeFiles/thread_test.dir/Thread_test.cc.o
[ 20%] Linking CXX executable ../../../bin/thread_test
[ 20%] Built target thread_test
[ 21%] Building CXX object muduo/base/tests/CMakeFiles/threadlocal_test.dir/ThreadLocal_test.cc.o
[ 21%] Linking CXX executable ../../../bin/threadlocal_test
[ 21%] Built target threadlocal_test
[ 21%] Building CXX object muduo/base/tests/CMakeFiles/threadlocalsingleton_test.dir/ThreadLocalSingleton_test.cc.o
[ 21%] Linking CXX executable ../../../bin/threadlocalsingleton_test
[ 21%] Built target threadlocalsingleton_test
[ 22%] Building CXX object muduo/base/tests/CMakeFiles/threadpool_test.dir/ThreadPool_test.cc.o
[ 22%] Linking CXX executable ../../../bin/threadpool_test
[ 22%] Built target threadpool_test
[ 23%] Building CXX object muduo/base/tests/CMakeFiles/timestamp_unittest.dir/Timestamp_unittest.cc.o
[ 23%] Linking CXX executable ../../../bin/timestamp_unittest
[ 23%] Built target timestamp_unittest
[ 23%] Building CXX object muduo/base/tests/CMakeFiles/timezone_unittest.dir/TimeZone_unittest.cc.o
[ 23%] Linking CXX executable ../../../bin/timezone_unittest
[ 23%] Built target timezone_unittest
[ 23%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/Acceptor.cc.o
[ 25%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/Buffer.cc.o
[ 25%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/Channel.cc.o
[ 25%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/Connector.cc.o
[ 25%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/EventLoop.cc.o
[ 26%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/EventLoopThread.cc.o
[ 26%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/EventLoopThreadPool.cc.o
[ 26%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/InetAddress.cc.o
[ 26%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/Poller.cc.o
[ 27%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/poller/DefaultPoller.cc.o
[ 27%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/poller/EPollPoller.cc.o
[ 27%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/poller/PollPoller.cc.o
[ 27%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/Socket.cc.o
[ 28%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/SocketsOps.cc.o
[ 28%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/TcpClient.cc.o
[ 28%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/TcpConnection.cc.o
[ 28%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/TcpServer.cc.o
[ 30%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/Timer.cc.o
[ 30%] Building CXX object muduo/net/CMakeFiles/muduo_net.dir/TimerQueue.cc.o
[ 30%] Linking CXX static library ../../lib/libmuduo_net.a
[ 30%] Built target muduo_net
[ 30%] Building CXX object muduo/net/http/CMakeFiles/muduo_http.dir/HttpServer.cc.o
[ 30%] Building CXX object muduo/net/http/CMakeFiles/muduo_http.dir/HttpResponse.cc.o
[ 31%] Building CXX object muduo/net/http/CMakeFiles/muduo_http.dir/HttpContext.cc.o
[ 31%] Linking CXX static library ../../../lib/libmuduo_http.a
[ 31%] Built target muduo_http
[ 31%] Building CXX object muduo/net/http/CMakeFiles/httpserver_test.dir/tests/HttpServer_test.cc.o
[ 32%] Linking CXX executable ../../../bin/httpserver_test
[ 32%] Built target httpserver_test
[ 32%] Building CXX object muduo/net/http/CMakeFiles/httprequest_unittest.dir/tests/HttpRequest_unittest.cc.o
[ 32%] Linking CXX executable ../../../bin/httprequest_unittest
[ 32%] Built target httprequest_unittest
[ 32%] Building CXX object muduo/net/inspect/CMakeFiles/muduo_inspect.dir/Inspector.cc.o
[ 32%] Building CXX object muduo/net/inspect/CMakeFiles/muduo_inspect.dir/PerformanceInspector.cc.o
[ 33%] Building CXX object muduo/net/inspect/CMakeFiles/muduo_inspect.dir/ProcessInspector.cc.o
[ 33%] Building CXX object muduo/net/inspect/CMakeFiles/muduo_inspect.dir/SystemInspector.cc.o
[ 33%] Linking CXX static library ../../../lib/libmuduo_inspect.a
[ 33%] Built target muduo_inspect
[ 33%] Building CXX object muduo/net/inspect/CMakeFiles/inspector_test.dir/tests/Inspector_test.cc.o
[ 35%] Linking CXX executable ../../../bin/inspector_test
[ 35%] Built target inspector_test
[ 35%] Building CXX object muduo/net/tests/CMakeFiles/channel_test.dir/Channel_test.cc.o
[ 35%] Linking CXX executable ../../../bin/channel_test
[ 35%] Built target channel_test
[ 35%] Building CXX object muduo/net/tests/CMakeFiles/echoserver_unittest.dir/EchoServer_unittest.cc.o
[ 36%] Linking CXX executable ../../../bin/echoserver_unittest
[ 36%] Built target echoserver_unittest
[ 36%] Building CXX object muduo/net/tests/CMakeFiles/echoclient_unittest.dir/EchoClient_unittest.cc.o
[ 36%] Linking CXX executable ../../../bin/echoclient_unittest
[ 36%] Built target echoclient_unittest
[ 36%] Building CXX object muduo/net/tests/CMakeFiles/eventloop_unittest.dir/EventLoop_unittest.cc.o
[ 36%] Linking CXX executable ../../../bin/eventloop_unittest
[ 36%] Built target eventloop_unittest
[ 36%] Building CXX object muduo/net/tests/CMakeFiles/eventloopthread_unittest.dir/EventLoopThread_unittest.cc.o
[ 37%] Linking CXX executable ../../../bin/eventloopthread_unittest
[ 37%] Built target eventloopthread_unittest
[ 37%] Building CXX object muduo/net/tests/CMakeFiles/eventloopthreadpool_unittest.dir/EventLoopThreadPool_unittest.cc.o
[ 37%] Linking CXX executable ../../../bin/eventloopthreadpool_unittest
[ 37%] Built target eventloopthreadpool_unittest
[ 37%] Building CXX object muduo/net/tests/CMakeFiles/buffer_unittest.dir/Buffer_unittest.cc.o
[ 37%] Linking CXX executable ../../../bin/buffer_unittest
[ 37%] Built target buffer_unittest
[ 37%] Building CXX object muduo/net/tests/CMakeFiles/inetaddress_unittest.dir/InetAddress_unittest.cc.o
[ 37%] Linking CXX executable ../../../bin/inetaddress_unittest
[ 37%] Built target inetaddress_unittest
[ 37%] Building CXX object muduo/net/tests/CMakeFiles/zlibstream_unittest.dir/ZlibStream_unittest.cc.o
[ 38%] Linking CXX executable ../../../bin/zlibstream_unittest
[ 38%] Built target zlibstream_unittest
[ 40%] Building CXX object muduo/net/tests/CMakeFiles/tcpclient_reg1.dir/TcpClient_reg1.cc.o
[ 40%] Linking CXX executable ../../../bin/tcpclient_reg1
[ 40%] Built target tcpclient_reg1
[ 40%] Building CXX object muduo/net/tests/CMakeFiles/tcpclient_reg2.dir/TcpClient_reg2.cc.o
[ 40%] Linking CXX executable ../../../bin/tcpclient_reg2
[ 40%] Built target tcpclient_reg2
[ 41%] Building CXX object muduo/net/tests/CMakeFiles/tcpclient_reg3.dir/TcpClient_reg3.cc.o
[ 41%] Linking CXX executable ../../../bin/tcpclient_reg3
[ 41%] Built target tcpclient_reg3
[ 41%] Building CXX object muduo/net/tests/CMakeFiles/timerqueue_unittest.dir/TimerQueue_unittest.cc.o
[ 41%] Linking CXX executable ../../../bin/timerqueue_unittest
[ 41%] Built target timerqueue_unittest
[ 42%] Building CXX object examples/ace/ttcp/CMakeFiles/ttcp_blocking.dir/ttcp_blocking.cc.o
[ 42%] Building CXX object examples/ace/ttcp/CMakeFiles/ttcp_blocking.dir/common.cc.o
[ 42%] Building CXX object examples/ace/ttcp/CMakeFiles/ttcp_blocking.dir/main.cc.o
[ 42%] Linking CXX executable ../../../bin/ttcp_blocking
[ 42%] Built target ttcp_blocking
[ 43%] Building CXX object examples/ace/ttcp/CMakeFiles/ttcp_muduo.dir/ttcp.cc.o
[ 43%] Building CXX object examples/ace/ttcp/CMakeFiles/ttcp_muduo.dir/common.cc.o
[ 43%] Building CXX object examples/ace/ttcp/CMakeFiles/ttcp_muduo.dir/main.cc.o
[ 43%] Linking CXX executable ../../../bin/ttcp_muduo
[ 43%] Built target ttcp_muduo
[ 45%] Building CXX object examples/ace/ttcp/CMakeFiles/ttcp_asio_sync.dir/ttcp_asio_sync.cc.o
[ 45%] Building CXX object examples/ace/ttcp/CMakeFiles/ttcp_asio_sync.dir/common.cc.o
[ 45%] Building CXX object examples/ace/ttcp/CMakeFiles/ttcp_asio_sync.dir/main.cc.o
[ 45%] Linking CXX executable ../../../bin/ttcp_asio_sync
[ 45%] Built target ttcp_asio_sync
[ 46%] Building CXX object examples/ace/ttcp/CMakeFiles/ttcp_asio_async.dir/ttcp_asio_async.cc.o
/home/wangming/study/muduo/examples/ace/ttcp/ttcp_asio_async.cc: In constructor ‘TtcpServerConnection::TtcpServerConnection(const boost::asio::e
xecutor&)’:                                                                                                                                     /home/wangming/study/muduo/examples/ace/ttcp/ttcp_asio_async.cc:29:7: error: no matching function for call to ‘boost::asio::basic_stream_socket<
boost::asio::ip::tcp>::basic_stream_socket(const boost::asio::executor&)’                                                                          29 |     : socket_(executor), count_(0), payload_(NULL), ack_(0)
      |       ^~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/asio/basic_socket_streambuf.hpp:25,
                 from /usr/include/boost/asio/basic_socket_iostream.hpp:24,
                 from /usr/include/boost/asio.hpp:44,
                 from /home/wangming/study/muduo/examples/ace/ttcp/ttcp_asio_async.cc:4:
/usr/include/boost/asio/basic_stream_socket.hpp:304:3: note: candidate: ‘template<class Protocol1, class Executor1> boost::asio::basic_stream_so
cket<Protocol, Executor>::basic_stream_socket(boost::asio::basic_stream_socket<Protocol1, Executor1>&&, typename boost::asio::constraint<(std::is_convertible<_Iter, _Iterator>::value && std::is_convertible<_Ep, _Dp>::value)>::type) [with Executor1 = Protocol1; Protocol = boost::asio::ip::tcp; Executor = boost::asio::any_io_executor]’                                                                                                   304 |   basic_stream_socket(basic_stream_socket<Protocol1, Executor1>&& other,
      |   ^~~~~~~~~~~~~~~~~~~
/usr/include/boost/asio/basic_stream_socket.hpp:304:3: note:   template argument deduction/substitution failed:
/home/wangming/study/muduo/examples/ace/ttcp/ttcp_asio_async.cc:29:7: note:   types ‘boost::asio::basic_stream_socket<Protocol1, Executor1>’ and
 ‘const boost::asio::executor’ have incompatible cv-qualifiers                                                                                     29 |     : socket_(executor), count_(0), payload_(NULL), ack_(0)
      |       ^~~~~~~~~~~~~~~~~
/usr/include/boost/asio/basic_stream_socket.hpp:248:3: note: candidate: ‘template<class ExecutionContext> boost::asio::basic_stream_socket<Proto
col, Executor>::basic_stream_socket(ExecutionContext&, const protocol_type&, const native_handle_type&, typename boost::asio::constraint<std::is_convertible<ExecutionContext&, boost::asio::execution_context&>::value>::type) [with Protocol = boost::asio::ip::tcp; Executor = boost::asio::any_io_executor]’                                                                                                                                  248 |   basic_stream_socket(ExecutionContext& context,
      |   ^~~~~~~~~~~~~~~~~~~
/usr/include/boost/asio/basic_stream_socket.hpp:248:3: note:   template argument deduction/substitution failed:
/home/wangming/study/muduo/examples/ace/ttcp/ttcp_asio_async.cc:29:7: note:   candidate expects 4 arguments, 1 provided
   29 |     : socket_(executor), count_(0), payload_(NULL), ack_(0)
      |       ^~~~~~~~~~~~~~~~~
/usr/include/boost/asio/basic_stream_socket.hpp:204:3: note: candidate: ‘template<class ExecutionContext> boost::asio::basic_stream_socket<Proto
col, Executor>::basic_stream_socket(ExecutionContext&, const endpoint_type&, typename boost::asio::constraint<std::is_convertible<ExecutionContext&, boost::asio::execution_context&>::value>::type) [with Protocol = boost::asio::ip::tcp; Executor = boost::asio::any_io_executor]’             204 |   basic_stream_socket(ExecutionContext& context, const endpoint_type& endpoint,
      |   ^~~~~~~~~~~~~~~~~~~
/usr/include/boost/asio/basic_stream_socket.hpp:204:3: note:   template argument deduction/substitution failed:
/home/wangming/study/muduo/examples/ace/ttcp/ttcp_asio_async.cc:29:7: note:   candidate expects 3 arguments, 1 provided
   29 |     : socket_(executor), count_(0), payload_(NULL), ack_(0)
      |       ^~~~~~~~~~~~~~~~~
/usr/include/boost/asio/basic_stream_socket.hpp:158:3: note: candidate: ‘template<class ExecutionContext> boost::asio::basic_stream_socket<Proto
col, Executor>::basic_stream_socket(ExecutionContext&, const protocol_type&, typename boost::asio::constraint<std::is_convertible<ExecutionContext&, boost::asio::execution_context&>::value, boost::asio::defaulted_constraint>::type) [with Protocol = boost::asio::ip::tcp; Executor = boost::asio::any_io_executor]’                                                                                                                          158 |   basic_stream_socket(ExecutionContext& context, const protocol_type& protocol,
      |   ^~~~~~~~~~~~~~~~~~~
/usr/include/boost/asio/basic_stream_socket.hpp:158:3: note:   template argument deduction/substitution failed:
/home/wangming/study/muduo/examples/ace/ttcp/ttcp_asio_async.cc:29:7: note:   candidate expects 3 arguments, 1 provided
   29 |     : socket_(executor), count_(0), payload_(NULL), ack_(0)
      |       ^~~~~~~~~~~~~~~~~
/usr/include/boost/asio/basic_stream_socket.hpp:119:12: note: candidate: ‘template<class ExecutionContext> boost::asio::basic_stream_socket<Prot
ocol, Executor>::basic_stream_socket(ExecutionContext&, typename boost::asio::constraint<std::is_convertible<ExecutionContext&, boost::asio::execution_context&>::value>::type) [with Protocol = boost::asio::ip::tcp; Executor = boost::asio::any_io_executor]’                                  119 |   explicit basic_stream_socket(ExecutionContext& context,
      |