20 Aug
2013
20 Aug
'13
12:38 p.m.
I found that hold_any template operator= is not used during assignment to another hold_any (as intended by its developer). Instead compiler uses self generated version of operator= which doesn't forward to assign(const basic_hold_any&). This leads to memory corruption. The fix is simple - you need to add explicit operator=(const basic_hold_any&). My compiler is gcc 4.4.7 and I use option -std=c++0x Version of boost is 1.53 but I don't see that something changed in 1.54 so it should have the same issue.
Please provide a patch which I will gladly apply. Regards Hartmut --------------- http://boost-spirit.com http://stellar.cct.lsu.edu