I haven’t been able to figure this out. It’s easy to create two ctors but I wanted to learn if there’s an easy way to do this.
How can one pass a std::map as the default parameter to a ctor, e.g.
Foo::Foo( int arg1, int arg2, const std::map<std::string, std::string> = VAL)
I’ve tried 0, null, and NULL as VAL, none of the work because they are all of type int, g++ complains. What is the correct default to use here?
Or is this kind of thing not a good idea?
The correct expression for
VALisstd::map<std::string, std::string>(). I think that looks long and ugly, so I’d probably add a public typedef member to the class:And by the way, did you mean for the last constructor argument to be a reference?
const map_type&is probably better than justconst map_type.