5 ms·
Awesome! I've been looking forward to the day I'm no longer relying on "experimental" C++0x support! Here's a smaller tl;dr for those who want it: -foreach loo
by Animus7 15y ago
Awesome! I've been looking forward to the day I'm no longer relying on "experimental" C++0x support! Here's a smaller tl;dr for those who want it:
-foreach loop
-first-class rvalue ("temporary") types
-lambda functions + closures
-implicit typing (auto keyword)
-decltype(), getting "declared type" of any expression
-variadic ... templates
-expanded STL -- incl. threading and RNG's
-construction from C-style initializer list
-Unicode literals
-enum class that doesn't auto-decay to int, enums with configurable base type
-explicit strong nullptr constant; no more NULL macro nonsense
The rest of the stuff is (in my opinion) less general/noteworthy.
- cageface 15y agoDon't forget the auto keyword. The question is, how long before I can actually use this stuff?
- Animus7 15y agoauto falls under "implicit typing". Clarified this. And we've been able to use a lot of C++0x for a while now: http://gcc.gnu.org/projects/cxx0x.html http://gcc.gnu.org/projects/cxx0x.html
- AshleysBrain 15y agoVisual Studio 2010 has about half the C++11 features (obviously it came out before the full standard was finished). Next release I guess will add more.
- seabee 15y agoOr maybe the next service pack. Thinking of VS2008 feature pack/SP1 which added TR1.
- sorbits 15y agoAnd status for clang: http://clang.llvm.org/cxx_status.html http://clang.llvm.org/cxx_status.html
- exDM69 15y agoWith the C++98 standard it took almost a decade to get decent support in mainstream compilers. This time it's different. Most of C++0x is already implemented in GCC and MSVC. However the implemented subsets are a bit different, but most of it is already there. The last time I checked, MSVC had lots of missing stuff in the standard library. In particular, threads and clocks were missing. I've been writing C++0x with GCC for two years now.
- abrahamsen 15y agoNo love for the low level concurrency support?
- exDM69 15y agoYeah, threads, clocks and atomics are missing from this list.
- vog 15y ago> explicit strong nullptr constant; no more NULL macro nonsense What is the point of this? C++ defines the null pointer to be always 0. So I never needed the NULL macro in C++ anyway, as I'm allowed to simply type 0 instead. In how far is that new nullptr constant preferable to writing simply 0?
- exDM69 15y agoIt's all about compile time warnings and static type information. The resulting code should be the same whether you're using 0, NULL or nullptr.
- xilun0 15y agonot e.g. with 64-bits, va args and literal 0 (cf FrankBooth example)
- biot 15y agoYou may know that a null pointer is always 0, but you don't know that 0 is always a null pointer -- it may be the result of subtracting an integer from itself. That's the difference.
- FrankBooth 15y agoConsider: int execl(const char *path, const char *arg, ...); called like so: execl("foo", "bar", 0); Particularly when sizeof(int) != sizeof(void *).
- doug363 15y agoIn overloaded or argument-deduced contexts, then "0" is preferentially an int, but nullptr is never an int.
- Someone 15y agoThe standard example is: void f(int x); void f(char *x); ... f(0); // calls void f(int) That may seem contrived, but you may not know of the f(int) overload, especially in combination with templates. NULL, if #define'd as (void *)0, prevents that error.
- palish 15y agoRNG's... Did they include Mersenne Twister? http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html EDIT: Apologies... the only reason I asked was to contribute to the discussion, but now I realize it probably looked like I was being lazy.
- archangel_one 15y agoYes - there are several options, which MT is one of: http://en.wikipedia.org/wiki/C_0x#Extensible_random_number_facility http://en.wikipedia.org/wiki/C_0x#Extensible_random_number_f...
- astrange 15y agoMersenne Twister is hardly perfect. It's slow, causes a lot of cache misses, and IIRC the output is purely XOR of previous outputs. Do people just bring it up because they like the name?
- corysama 15y agoDeserved or not, Mersenne Twister is somewhat famous among laymen like myself for being very fast relative to it's reasonably high quality. If you can point me at an RNG that is both faster and higher quality, I will be genuinely in your debt.
- msbarnett 15y agoMy layman's understanding is that George Marsaglia's xorshift generator[1] is considerably faster than the Mersenne Twister while still providing high quality randomness. I've also seen WELL512[2] mentioned in a few places, but I don't know much more about it than the name. [1]: First introduced here: http://groups.google.com/group/comp.lang.c/msg/e3c4ea1169e463ae http://groups.google.com/group/comp.lang.c/msg/e3c4ea1169e46... [2]: http://www.iro.umontreal.ca/~panneton/WELLRNG.html http://www.iro.umontreal.ca/~panneton/WELLRNG.html
- 15y ago
- leon_ 15y agoYeah, I'm building my subset of C++B right now. Much of the new stuff is either too complex or you will use it too rarely to make use without looking it up.