412 karma · joined April 20, 2012
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.
[1] http://agtb.wordpress.com/2013/04/14/should-technical-errors...
The list of such companies includes some really big ones, like Babylon and Conduit. These companies are making their profits by degrading Windows users' experience. Not only didn't Ballmer do anything to fight them, Microsoft actually has affiliate agreements with these companies to take a slice of the profits. Screwing your own customers like that cannot end well for Microsoft.
For example, let's say I want to apply DCT to a matrix. In Matlab it's simply dct(A). How do you do that in Python? Well, there's scipy.fftpack.dct, but when I try it, it turns out it operates on the rows of A, instead of the columns. So I start searching the help, and find there's a parameter called "axis", with the useless description "Axis over which to compute the transform." So I try axis=1, axis=2, then finally axis=0, and presto, it works. So sure, it's functionally equivalent to Matlab, but do I really want to go through all this every time I want to accomplish a simple task?
Fact is, Russians don't use Facebook and Gmail because they have more popular local alternatives. This decision is ultimately more about trade protectionism than anything else, much like the US witch-hunt on ZTE and Huawei.