The program below fails to link when buillding it with ICPC version 13.0 under Linux (Intel 64). Using boost version 1.51 (without any patches).
The diagnostics:
/mnt/work/Bender2/Bender2/Sources/TestMod/TestSO.cpp:14: undefined reference to `boost::asio::ip::operator!=(boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp> const&, boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp> const&)'
/mnt/work/Bender2/Bender2/Sources/TestMod/TestSO.cpp:15: undefined reference to `boost::asio::ip::operator!=(boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp> const&, boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp> const&)'
This operator is not instantiated. The interesting thing: making connect() method a separate function or removing default value from prototype makes program to link successfuly
#include <boost/asio/ip/tcp.hpp>
class test
{
void connect(boost::asio::ip::tcp::resolver::iterator et = boost::asio::ip::tcp::resolver::iterator());
};
using namespace boost::asio::ip;
void test::connect(tcp::resolver::iterator et)
{
tcp::resolver::iterator end;
if(et != end) {
for(; et != end; ++et) {
break;
}
}
}
int main()
{
}



