M
me
Hi guys
I want to insert a load of pieces of data into a map
The map has an std::string representing a field name as the key, and the
value is a struct with 2 members - the field length and a bool
indicating whether the field is a special field or not.
The struct representing the value has a constructor that takes a single
parameter for the length, and defaults the boolean to false.
To simplify the code, and make things look neater, I defined a macro:
#define SETUP_FIELD(FIELD_NAME, FIELD_SIZE)
FieldMap.insert(std::make_pair(std::string("FIELD_NAME"),FieldData(FIELD_SIZE)))
;
So i can do:
SETUP_FIELD (TheFirstField,3) ;
SETUP_FIELD (TheSecondField,1) ;
SETUP_FIELD (TheThirdField,2) ;
SETUP_FIELD (TheFourthField,7) ;
etc...
But when i look at the map, all the keys are set to "FIELD_NAME", rather
than "TheFirstField" etc - the macro has not substituted the string I
pass in. I guess this is something to do with substitution within a
string literal...but I'm a bit stumped.
Any Ideas?
dtw
I want to insert a load of pieces of data into a map
The map has an std::string representing a field name as the key, and the
value is a struct with 2 members - the field length and a bool
indicating whether the field is a special field or not.
The struct representing the value has a constructor that takes a single
parameter for the length, and defaults the boolean to false.
To simplify the code, and make things look neater, I defined a macro:
#define SETUP_FIELD(FIELD_NAME, FIELD_SIZE)
FieldMap.insert(std::make_pair(std::string("FIELD_NAME"),FieldData(FIELD_SIZE)))
;
So i can do:
SETUP_FIELD (TheFirstField,3) ;
SETUP_FIELD (TheSecondField,1) ;
SETUP_FIELD (TheThirdField,2) ;
SETUP_FIELD (TheFourthField,7) ;
etc...
But when i look at the map, all the keys are set to "FIELD_NAME", rather
than "TheFirstField" etc - the macro has not substituted the string I
pass in. I guess this is something to do with substitution within a
string literal...but I'm a bit stumped.
Any Ideas?
dtw