Boost logo

Boost Users :

From: Christian Henning (chhenning_at_[hidden])
Date: 2006-09-16 15:59:02


Hi there I'm experiencing a strange compilation error that I cannot
resolve myself.

The following non-functionating triggers the error. I'm using VC2003
SP1. The error is due to the write() call.

template <class T > void sent( const T& object )
{
   std::ostringstream archive_stream;
   boost::archive::binary_oarchive archive( archive_stream );
   archive & object;

   std::string outbound_data = archive_stream.str();

   // Format the header.
   std::ostringstream header_stream;
   header_stream << std::setw( 8 )
                  << std::hex
                  << outbound_data.size();

   std::string outbound_header = header_stream.str();

   // Write the serialized data to the socket. We use "gather-write" to send
   // both the header and the data in a single write operation.
   std::vector<boost::asio::const_buffer> buffers;
   buffers.push_back(boost::asio::buffer(outbound_header));
   buffers.push_back(boost::asio::buffer(outbound_data));
   boost::asio::write( socket, buffers );
}

This is the verbose error message:

..\..\..\External\Includes\Boost\asio\impl\write.ipp(40) : error
C2825: 'Sync_Write_Stream::error_type': cannot form a qualified name
        ..\..\..\External\Includes\Boost\asio\impl\write.ipp(58) : see
reference to function template instantiation 'size_t
boost::asio::write<Sync_Write_Stream,Const_Buffers,boost::asio::detail::transfer_all_t,boost::asio::detail::throw_error_t>(Sync_Write_Stream
(__stdcall &),const Const_Buffers
&,Completion_Condition,Error_Handler)' being compiled
        with
        [
            Sync_Write_Stream=SOCKET (int,int,int),
            Const_Buffers=std::vector<boost::asio::const_buffer>,
            Completion_Condition=boost::asio::detail::transfer_all_t,
            Error_Handler=boost::asio::detail::throw_error_t
        ]
        SendImages.cpp(75) : see reference to function template
instantiation 'size_t
boost::asio::write<SOCKET(int,int,int),std::vector<_Ty>>(Sync_Write_Stream
(__stdcall &),const Const_Buffers &)' being compiled
        with
        [
            _Ty=boost::asio::const_buffer,
            Sync_Write_Stream=SOCKET (int,int,int),
            Const_Buffers=std::vector<boost::asio::const_buffer>
        ]
..\..\..\External\Includes\Boost\asio\impl\write.ipp(40) : error
C2039: 'error_type' : is not a member of 'operator``global
namespace'''
..\..\..\External\Includes\Boost\asio\impl\write.ipp(40) : error
C2146: syntax error : missing ';' before identifier 'e'
..\..\..\External\Includes\Boost\asio\impl\write.ipp(40) : error
C2065: 'e' : undeclared identifier
..\..\..\External\Includes\Boost\asio\impl\write.ipp(41) : error
C2228: left of '.write_some' must have class/struct/union type
        type is '__w64 unsigned int (__stdcall &)(int,int,int)'
..\..\..\External\Includes\Boost\asio\impl\write.ipp(41) : error
C3861: 'e': identifier not found, even with argument-dependent lookup
..\..\..\External\Includes\Boost\asio\impl\write.ipp(44) : error
C3861: 'e': identifier not found, even with argument-dependent lookup
..\..\..\External\Includes\Boost\asio\impl\write.ipp(46) : error
C3861: 'e': identifier not found, even with argument-dependent lookup
..\..\..\External\Includes\Boost\asio\impl\write.ipp(50) : error
C2825: 'Sync_Write_Stream::error_type': cannot form a qualified name
..\..\..\External\Includes\Boost\asio\impl\write.ipp(50) : error
C2039: 'error_type' : is not a member of 'operator``global
namespace'''
..\..\..\External\Includes\Boost\asio\impl\write.ipp(50) : error
C2146: syntax error : missing ';' before identifier 'e'
..\..\..\External\Includes\Boost\asio\impl\write.ipp(50) : error
C3861: 'e': identifier not found, even with argument-dependent lookup
..\..\..\External\Includes\Boost\asio\impl\write.ipp(51) : error
C3861: 'e': identifier not found, even with argument-dependent lookup

Thanks ahead,
Christian


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net