map

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

map

Beitrag von DBGTMaster »

Hallo,

kann mir jemand sagen, was hier schief geht??

Code: Alles auswählen

    typedef std::map<const QByteArray, TcpCommandFactory<TcpAbstractCommand>* > factoryActionMap;
    typedef std::map<const QByteArray, factoryActionMap > factoryGroupMap;
    factoryGroupMap _factoryMap;

    const QByteArray groupName = factory->getGroupName();
    pair<factoryGroupMap, bool> insertGroupState
            = _factoryMap.insert( pair<const QByteArray, factoryActionMap>( groupName, factoryActionMap() ) );
In file included from c:\qt\qtcreator-2.3.0\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/bits/stl_algobase.h:66,
from c:\qt\qtcreator-2.3.0\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/bits/stl_tree.h:62,
from c:\qt\qtcreator-2.3.0\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/map:60,
from ..\server\/TcpCommandFactories.h:6,
from ..\server\TcpCommandFactories.cpp:1:
c:\qt\qtcreator-2.3.0\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/bits/stl_pair.h: In constructor 'std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = std::_Rb_tree_iterator<std::pair<const QByteArray, std::map<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*, std::less<const QByteArray>, std::allocator<std::pair<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*> > > > >, _U2 = bool, _T1 = std::map<const QByteArray, std::map<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*, std::less<const QByteArray>, std::allocator<std::pair<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*> > >, std::less<const QByteArray>, std::allocator<std::pair<const QByteArray, std::map<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*, std::less<const QByteArray>, std::allocator<std::pair<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*> > > > > >, _T2 = bool]':
..\server\TcpCommandFactories.cpp:17: instantiated from here
c:\qt\qtcreator-2.3.0\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/bits/stl_pair.h:101: error: no matching function for call to 'std::map<const QByteArray, std::map<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*, std::less<const QByteArray>, std::allocator<std::pair<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*> > >, std::less<const QByteArray>, std::allocator<std::pair<const QByteArray, std::map<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*, std::less<const QByteArray>, std::allocator<std::pair<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*> > > > > >::map(const std::_Rb_tree_iterator<std::pair<const QByteArray, std::map<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*, std::less<const QByteArray>, std::allocator<std::pair<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*> > > > >&)'
c:\qt\qtcreator-2.3.0\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/bits/stl_map.h:170: note: candidates are: std::map<_Key, _Tp, _Compare, _Alloc>::map(const std::map<_Key, _Tp, _Compare, _Alloc>&) [with _Key = const QByteArray, _Tp = std::map<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*, std::less<const QByteArray>, std::allocator<std::pair<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*> > >, _Compare = std::less<const QByteArray>, _Alloc = std::allocator<std::pair<const QByteArray, std::map<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*, std::less<const QByteArray>, std::allocator<std::pair<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*> > > > >]
c:\qt\qtcreator-2.3.0\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/bits/stl_map.h:159: note: std::map<_Key, _Tp, _Compare, _Alloc>::map(const _Compare&, const _Alloc&) [with _Key = const QByteArray, _Tp = std::map<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*, std::less<const QByteArray>, std::allocator<std::pair<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*> > >, _Compare = std::less<const QByteArray>, _Alloc = std::allocator<std::pair<const QByteArray, std::map<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*, std::less<const QByteArray>, std::allocator<std::pair<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*> > > > >]
c:\qt\qtcreator-2.3.0\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/bits/stl_map.h:150: note: std::map<_Key, _Tp, _Compare, _Alloc>::map() [with _Key = const QByteArray, _Tp = std::map<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*, std::less<const QByteArray>, std::allocator<std::pair<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*> > >, _Compare = std::less<const QByteArray>, _Alloc = std::allocator<std::pair<const QByteArray, std::map<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*, std::less<const QByteArray>, std::allocator<std::pair<const QByteArray, TcpCommandFactory<TcpAbstractCommand>*> > > > >]
mingw32-make[1]: *** [debug/TcpCommandFactories.o] Error 1
mingw32-make: *** [debug] Error 2
Die insert- Methode schlägt immer fehl :(

danke!
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: map

Beitrag von franzf »

Statt

Code: Alles auswählen

pair<factoryGroupMap, bool> insertGroupState = blabla
ein

Code: Alles auswählen

pair<factoryGroupMap::iterator, bool> insertGroupState = blabla
Siehe z.B. hier:
http://www.cplusplus.com/reference/stl/map/insert/
Antworten