A private forum for us Super-Humans, I even trust you to be able to edit your own posts =)
Moderator: Moderators
-
Big Muscle
- Posts: 72
- Joined: 2004-01-23 14:45
Post
by Big Muscle » 2006-01-19 15:40
Hello. I was trying to compile DC++ with latest STLPort CVS, but I got a lot of errors like:
Error 20 error C2139: 'HubEntry' : an undefined class is not allowed as an argument to compiler intrinsic type trait '__has_trivial_assign' c:\program files\microsoft visual studio 8\komponenty\stlport\stlport\stl\type_traits.h 284
so I asked STLPort developer and he told me this:
I also try with VS2005 and it reveals an interesting side effect of a STLport evolution to use intrinsic type traits of VS2005.
See
https://sourceforge.net/forum/forum.php ... =490892for a description of this problem.
I think DCPlusPlus should be fixed to avoid instanciation of STL containers with incomplete type.
But I really don't know what does it mean
so I'm asking for help... or giving suggestion to fix it
-
[NL]Pur
- Programmer
- Posts: 66
- Joined: 2004-07-21 14:32
Post
by [NL]Pur » 2006-01-19 15:58
Is it the problem here that MyClass is used within the "MyClass" itself to define the used object with the List.
-
Guitarm
- Forum Moderator
- Posts: 385
- Joined: 2004-01-18 15:38
Post
by Guitarm » 2006-01-20 03:50
This seems to be the case...but what to do about it? (I haven't read the documentation and I can't see an answer in that post referred to).
"Nothing really happens fast. Everything happens at such a rate that by the time it happens, it all seems normal."
-
Big Muscle
- Posts: 72
- Joined: 2004-01-23 14:45
Post
by Big Muscle » 2006-01-28 07:31
Another problem with STLport (every, not only CVS) in _STLP_DEBUG. It complains about comparing two iterators with different owner in ShareManager::removeTTH(...). What to do with it ?
P.S. STLPort CVS crash on it when not in _STLP_DEBUG.
Code: Select all
void ShareManager::removeTTH(const TTHValue& tth, const Directory::File::Iter& iter) {
pair<HashFileIter, HashFileIter> range = tthIndex.equal_range(const_cast<TTHValue*>(&tth));
for(HashFileIter j = range.first; j != range.second; ++j) {
>>> if(j->second == iter) { <<<
tthIndex.erase(j);
break;
}
}
}
-
FarCry
- Programmer
- Posts: 34
- Joined: 2003-05-01 10:49
Post
by FarCry » 2006-01-28 08:56
Provide an operator==() for File and compare the objects, not the iterators.