I tried converting a 2010 C++ STL practise project with code from the Channel 9 STL videos into 2012 project and 2012 gave couple errors:

First I had to comment #include <initializer_list> from stdafx (though maybe this was not necessary even in 2010)

Then I'm getting this error in Errors tab:

 2 IntelliSense: more than one conversion function from "lambda []void (std::pair<const int, std::string> &x)->void" to "<error-type>" applies:
            function "lambda []void (std::pair<const int, std::string> &x)->void::operator void (*)(std::pair<const int, std::string> &x)() const"
            function "lambda []void (std::pair<const int, std::string> &x)->void::operator void (*)(std::pair<const int, std::string> &x)() const"
            function "lambda []void (std::pair<const int, std::string> &x)->void::operator void (*)(std::pair<const int, std::string> &x)() const" 

(notice, three times the exact same line, and I have no idea what is wrong based on that message)

Yet, in Output tab, no errors or warning:

========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

Code giving this is:

 unordered_map<int, string> m;

...

 for_each(begin(m),end(m), [](decltype(*begin(m)) x) {
...

 });  

 

When I comment or uncomment that for_each loop, the error goes away or comes back within about 1 second. This sort of "lagged surprise response" is kinda annoying but I don't think there's much you can do about it if you have to background compile things to see if there's any error. 

I'd like a modern C++ & C# replacement that's more like C# in syntax & libraries but with C's native abilities and no JIT compile option and no header files and can link direct with C & C++ libs without interop work/wrappers and such. It would be nice also to have super high performance in-process permanent storage (with failure resiliency & continous runtime versioned remote backup ability) in it, I mean, the highest perf that is theoretically possible. I read that in 80's there were some proprietary languages with such things and banks still use them because they just have got faster and faster with new processors since they performed good enough in 80's.

And of course easy way to modify the running code without stopping it entirely (I mean, modify/create methods during execution and only suspend execution for milliseconds to add the compiled modifications back into native code at runtime) . I re-checked, and the language with these capabilities was mumps, created in 60's but became common in healthcare/finance later.