Hello all
I am down to only
2, yes 2 compile time errors, compiling bitcoind (0.8.5) on MSVC++ Express 2005! Here's a pix of one of them
The other is the IMPLEMENT_SERIALIZE macro in class CAddrInfo, in addrman.h
This is due among other unknown reasons, to microsoft's inability to "stomach" the extra layer of complexity (it seems) with the line:
std::map mapUnkIds;
in IMPLEMENT_SERIALIZE
When I comment just that and the references to mapUnkIds, the file compiles, though the macro is certainly wrong.
I don't even know if the code, when I do successfully compile it, will run, or run correctly, but you sure can
debug it
wonderfully in visual studio (express). And since it really does know the convoluted interconnectedness of the include files, it compiles
only what is needed. Ah those include files!
Can anyone shed some light on what gcc thinks that msvc can't figure out in the first case, and how the second might be tackled too?
The full error in script.cpp is
------ Build started: Project: EmptyConsoleApp, Configuration: Debug Win32 ------
Compiling...
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 &,const base_uint &)' [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 &,const base_uint &)' [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::operator <(const mruset &,const mruset &)' [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,
_Alloc=std::allocator,
_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,std::allocator,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,std::allocator,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,std::allocator,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,std::allocator,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
]
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), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
How's that for an explanation!? The compiler seems to be unsure which overloaded < operator it should use, somewhere?
Anyone interested in a MSVC++ 2005, 2008, 2010, 2012, 2013 Express (or full) version of bitcoind?
Ron