@PepijnKramer : My real case is more complex (vector of a struct containing a lot of data, each of them is an optional map<string,map<string,map<string,double>>> storing an history of mathematical data related to my algorithm). I used a map in the optional to keep the spirit of "emplace when required", I put the optional in a container in order to have an elegant one-line call (without redudancy of access).