Compiler error using HashMap

On 06/04/2016 at 04:27, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   15-17 
Platform:   Windows  ;   
Language(s) :     C++  ;

---------
Hi,

I have the hashmap

maxon::HashMap<Int32, LineChangeInterval *> lineChangeIntervals;

If I try to add entries using FindOrCreateEntry like

maxon::HashMap<Int32, LineChangeInterval *>::Entry *e = lineChangeIntervals.FindOrCreateEntry(hash, created);

I get the compiler error C2228: left of '.ConstructHashMapEntry' must have class/struct/union in file hashmap.h line 498 (VS 2013)

that is:      e = constructor.ConstructHashMapEntry(e, key);

What am I missing? If I use FindEntry() and Put() it compiles without errors.

Thanks for your help.

On 20/04/2016 at 00:54, xxxxxxxx wrote:

Hello,

we got word from the developers on this. Since HashMap is part of the "maxon" namespace it expects a "maxon::Bool" and not a "Bool" value for "created":

  
typedef maxon::HashMap<Int, String> IntStringMap;  
IntStringMap map;  
  
maxon::Bool created = false;  
IntStringMap::Entry* e = map.FindOrCreateEntry(42, created);  
  
if(e)  
{  
  // do something  
}  

best wishes,
Sebastian