std::list<boost::asio::const_buffer> outbound; // messages waiting to be written to socket
Compiling fails on line 7, the call to std::accumulate:
no matching function for call to ‘accumulate(std::_List_const_iterator<boost::asio::const_buffer>, std::_List_const_iterator<boost::asio::const_buffer>, size_t, cmt::serialise::binary::tx_object::size_() const::accum_buf_size)’
Never mind - it's explicitly forbidden by the standard.
14.3.1: A local type, a type with no linkage, an unnamed type or a type compounded from any of these types shall not be used as a template-argument for a template type-parameter.