STLPort CVS

A private forum for us Super-Humans, I even trust you to be able to edit your own posts =)

Moderator: Moderators

Locked
Big Muscle
Posts: 72
Joined: 2004-01-23 14:45

STLPort CVS

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 :oops: :oops: :oops: so I'm asking for help... or giving suggestion to fix it :wink:

[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.

Big Muscle
Posts: 72
Joined: 2004-01-23 14:45

Post by Big Muscle » 2006-01-28 09:13

ok, I will try... btw bug is also in DC++ ;)

Locked