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++  ;


    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:


    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);  
      // do something  

    best wishes,

Log in to reply