Down to 1 error (& 2 warnings). I was able to get MSVC to "digest" IMPLEMENT_SERIALIZE(), but
this last one...
------ Rebuild All started: Project: EmptyConsoleApp, Configuration: Debug Win32 ------
Deleting intermediate and output files for project 'EmptyConsoleApp', configuration 'Debug|Win32'
Compiling...
addrman.cpp
alert.cpp
bitcoinrpc.cpp
k:\backups\boost_1_53_0\boost\iostreams\detail\streambuf\indirect_streambuf.hpp(249) : warning C4996: 'std::char_traits<char>::move': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'
d:\program files\microsoft visual studio 8\vc\include\iosfwd(470) : see declaration of 'std::char_traits<char>::move'
k:\backups\boost_1_53_0\boost\iostreams\detail\streambuf\indirect_streambuf.hpp(237) : while compiling class template member function 'int boost::iostreams::detail::indirect_streambuf<T,Tr,Alloc,Mode>::underflow(void)'
with
[
T=SSLIOStreamDevice<boost::asio::ip::tcp>,
Tr=std::char_traits<char>,
Alloc=std::allocator<char>,
Mode=boost::iostreams::detail::io_mode_impl<3>::type
]
k:\backups\boost_1_53_0\boost\iostreams\stream_buffer.hpp(66) : see reference to class template instantiation 'boost::iostreams::detail::indirect_streambuf<T,Tr,Alloc,Mode>' being compiled
with
[
T=SSLIOStreamDevice<boost::asio::ip::tcp>,
Tr=std::char_traits<char>,
Alloc=std::allocator<char>,
Mode=boost::iostreams::detail::io_mode_impl<3>::type
]
k:\backups\boost_1_53_0\boost\utility\base_from_member.hpp(69) : see reference to class template instantiation 'boost::iostreams::stream_buffer<T,Tr,Alloc>' being compiled
with
[
T=SSLIOStreamDevice<boost::asio::ip::tcp>,
Tr=std::char_traits<char>,
Alloc=std::allocator<char>
]
k:\backups\boost_1_53_0\boost\iostreams\stream.hpp(75) : see reference to class template instantiation 'boost::base_from_member<MemberType>' being compiled
with
[
MemberType=boost::iostreams::stream_buffer<SSLIOStreamDevice<boost::asio::ip::tcp>,std::char_traits<char>,std::allocator<char>>
]
k:\backups\boost_1_53_0\boost\iostreams\stream.hpp(112) : see reference to class template instantiation 'boost::iostreams::detail::stream_base<Device,Tr,Alloc>' being compiled
with
[
Device=SSLIOStreamDevice<boost::asio::ip::tcp>,
Tr=std::char_traits<char>,
Alloc=std::allocator<char>
]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\bitcoinrpc.cpp(1338) : see reference to class template instantiation 'boost::iostreams::stream<Device>' being compiled
with
[
Device=SSLIOStreamDevice<boost::asio::ip::tcp>
]
k:\backups\boost_1_53_0\boost\algorithm\string\detail\classification.hpp(102) : warning C4996: 'std::copy': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'
d:\program files\microsoft visual studio 8\vc\include\xutility(2370) : see declaration of 'std::copy'
k:\backups\boost_1_53_0\boost\algorithm\string\classification.hpp(206) : see reference to function template instantiation 'boost::algorithm::detail::is_any_ofF<CharT>::is_any_ofF<boost::iterator_range<IteratorT>>(const RangeT &)' being compiled
with
[
CharT=char,
IteratorT=const char *,
RangeT=boost::iterator_range<const char *>
]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\bitcoinrpc.cpp(644) : see reference to function template instantiation 'boost::algorithm::detail::is_any_ofF<CharT> boost::algorithm::is_any_of<const char[2]>(RangeT (&))' being compiled
with
[
CharT=char,
RangeT=const char [2]
]
bloom.cpp
checkpoints.cpp
crypter.cpp
db.cpp
hash.cpp
init.cpp
key.cpp
keystore.cpp
leveldb.cpp
main.cpp
net.cpp
netbase.cpp
noui.cpp
protocol.cpp
rpcblockchain.cpp
rpcdump.cpp
rpcmining.cpp
rpcnet.cpp
rpcrawtransaction.cpp
rpcwallet.cpp
script.cpp
d:\program files\microsoft visual studio 8\vc\include\functional(149) : error C2678: binary '<' : no operator found which takes a left-hand operand of type 'const CSignatureCache::sigdata_type' (or there is no acceptable conversion)
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(229): could be 'bool operator <(const base_uint<BITS> &,const base_uint<BITS> &)' [found using argument-dependent lookup]
with
[
BITS=160
]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(521): or 'bool operator <(const base_uint160 &,const uint160 &)' [found using argument-dependent lookup]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(533): or 'bool operator <(const uint160 &,const base_uint160 &)' [found using argument-dependent lookup]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(545): or 'bool operator <(const uint160 &,const uint160 &)' [found using argument-dependent lookup]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(229): or 'bool operator <(const base_uint<BITS> &,const base_uint<BITS> &)' [found using argument-dependent lookup]
with
[
BITS=256
]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(636): or 'bool operator <(const base_uint256 &,const uint256 &)' [found using argument-dependent lookup]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(648): or 'bool operator <(const uint256 &,const base_uint256 &)' [found using argument-dependent lookup]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\uint256.h(660): or 'bool operator <(const uint256 &,const uint256 &)' [found using argument-dependent lookup]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\key.h(74): or 'bool operator <(const CPubKey &,const CPubKey &)' [found using argument-dependent lookup]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\netbase.h(99): or 'bool operator <(const CNetAddr &,const CNetAddr &)' [found using argument-dependent lookup]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\netbase.h(129): or 'bool operator <(const CService &,const CService &)' [found using argument-dependent lookup]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\bignum.h(607): or 'bool operator <(const CBigNum &,const CBigNum &)' [found using argument-dependent lookup]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\script.h(63): or 'bool operator <(const CNoDestination &,const CNoDestination &)' [found using argument-dependent lookup]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\protocol.h(125): or 'bool operator <(const CInv &,const CInv &)' [found using argument-dependent lookup]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\mruset.h(35): or 'bool mruset<T>::operator <(const mruset<T> &,const mruset<T> &)' [found using argument-dependent lookup]
with
[
T=CInv
]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\main.h(294): or 'bool operator <(const COutPoint &,const COutPoint &)' [found using argument-dependent lookup]
while trying to match the argument list '(const CSignatureCache::sigdata_type, const CSignatureCache::sigdata_type)'
d:\program files\microsoft visual studio 8\vc\include\functional(148) : while compiling class template member function 'bool std::less<_Ty>::operator ()(const _Ty &,const _Ty &) const'
with
[
_Ty=CSignatureCache::sigdata_type
]
d:\program files\microsoft visual studio 8\vc\include\set(60) : see reference to class template instantiation 'std::less<_Ty>' being compiled
with
[
_Ty=CSignatureCache::sigdata_type
]
d:\program files\microsoft visual studio 8\vc\include\xtree(26) : see reference to class template instantiation 'std::_Tset_traits<_Kty,_Pr,_Alloc,_Mfl>' being compiled
with
[
_Kty=CSignatureCache::sigdata_type,
_Pr=std::less<CSignatureCache::sigdata_type>,
_Alloc=std::allocator<CSignatureCache::sigdata_type>,
_Mfl=false
]
d:\program files\microsoft visual studio 8\vc\include\xtree(68) : see reference to class template instantiation 'std::_Tree_nod<_Traits>' being compiled
with
[
_Traits=std::_Tset_traits<CSignatureCache::sigdata_type,std::less<CSignatureCache::sigdata_type>,std::allocator<CSignatureCache::sigdata_type>,false>
]
d:\program files\microsoft visual studio 8\vc\include\xtree(94) : see reference to class template instantiation 'std::_Tree_ptr<_Traits>' being compiled
with
[
_Traits=std::_Tset_traits<CSignatureCache::sigdata_type,std::less<CSignatureCache::sigdata_type>,std::allocator<CSignatureCache::sigdata_type>,false>
]
d:\program files\microsoft visual studio 8\vc\include\xtree(112) : see reference to class template instantiation 'std::_Tree_val<_Traits>' being compiled
with
[
_Traits=std::_Tset_traits<CSignatureCache::sigdata_type,std::less<CSignatureCache::sigdata_type>,std::allocator<CSignatureCache::sigdata_type>,false>
]
d:\program files\microsoft visual studio 8\vc\include\set(69) : see reference to class template instantiation 'std::_Tree<_Traits>' being compiled
with
[
_Traits=std::_Tset_traits<CSignatureCache::sigdata_type,std::less<CSignatureCache::sigdata_type>,std::allocator<CSignatureCache::sigdata_type>,false>
]
k:\backups\drive_d_backup\ms vc++ express 2005 tests\emptyconsoleapp\emptyconsoleapp\script.cpp(1061) : see reference to class template instantiation 'std::set<_Kty>' being compiled
with
[
_Kty=CSignatureCache::sigdata_type
]
sync.cpp
txdb.cpp
util.cpp
version.cpp
wallet.cpp
walletdb.cpp
Build log was saved at "file://k:\Backups\Drive_d_backup\MS VC++ Express 2005 tests\EmptyConsoleApp\EmptyConsoleApp\Debug\BuildLog.htm"
EmptyConsoleApp - 1 error(s), 2 warning(s)
If anyone has insight into script.cpp => CSignatureCache::sigdata_type and an < overloaded operator on
const types, you will get attribution in the code

It would be nice to get rid of that warning in bitcoinrpc.cpp too!
Ron