1) You can create range for loops over containers:
for (auto x: vec) {
foo(x);
}
but then if you want to do the same over a C array, you have to define your own wrapper with begin() and end() functions.2. You can create shared pointers using make_shared, but you can't create unique pointers using make_unique. What's worse, if you define your own make_unique function, your code will eventually break because it's already decided that C++14 will have its own make_unique.
I'm sure all of this will get fixed eventually, but frankly I don't have more patience for this. The root cause is that the C++ process is broken and is lead by incompetent clueless people.