29

This is a question in two parts, the first is the most important and concerns now:

  • Are you following the design and evolution of C++11? What blogs, newsgroups, committee papers, and other resources do you follow?
  • Even where you're not using any new features, how have they affected your current choices?
  • What new features are you using now, either in production or otherwise?

The second part is a follow-up, concerning the new standard once it is final:

  • Do you expect to use it immediately? What are you doing to prepare for C++11, other than as listed for the previous questions?
  • Obviously, compiler support must be there, but there's still co-workers, ancillary tools, and other factors to consider. What will most affect your adoption?

Edit: The original really was too argumentative; however, I'm still interested in the underlying question, so I've tried to clean it up and hopefully make it acceptable. This seems a much better avenue than duplicating—even though some answers responded to the argumentative tone, they still apply to the extent that they addressed the questions, and all answers are community property to be cleaned up as appropriate, too.

Xeo
  • 123,374
  • 44
  • 277
  • 381
  • 3
    I don't see what coughtconceptscough have to do with anything. No one ever claimed that a compiler supported them (other than conceptgcc which *partially* supported some very early drafts of the feature), and no one were ever *sure* it would be included. `auto` is entirely different in that it is finalized, agreed upon and supported by actual compilers. – jalf Nov 18 '09 at 14:08
  • 2
    I have stumbled across this again, and although I was one of the people who closed it, I feel it's a valid question now. (Maybe because of edit, or change of spirit, who knows.) In any case, though it probably won't happen you should know I've voted to reopen it. – GManNickG Apr 07 '10 at 04:43
  • 1
    @GMan: You and four other people (including myself) apparently :) – Billy ONeal Apr 08 '10 at 18:03

15 Answers15

23

Can't guess how many are interested in the new C++0x and I am pretty sure that everyone who knows C++ and uses it is curious and eager for more news about it.

I started using everything new from C++0x as soon as it was implemented from g++. Still for small non portable projects. Why? - People constantly telling me to forget about c++ and switch totally to a scripting language to gain faster code developing and forget about memory management. However, my best experience and knowledge is in c++. I know RAII and use Boost library everyday. Now, the new features make me write much faster then before. Knowing that rvalues are here, pointers(even the smart) disappeared from the code. STL algorithms with lambdas just rock and initilizer lists make me so happy. Auto keyword is furious.

So, my primary reason to use C++0x now is speed of development.

Gramic
  • 357
  • 4
  • 16
  • 13
    i didn't know keywords were capabable of emotion, let alone anger – jk. May 24 '10 at 11:28
  • 1
    English is not my native language and while writing this answer it was meant to show my love for c++ becoming better for my needs. No anger or confrontation intended! – Gramic Feb 28 '11 at 16:39
16

I'm not using C++0x today, because it will lead to losing code portability. Because there is no C++0x Standard today.

Answer: No
Reason: code portability

Yktula
  • 12,757
  • 14
  • 42
  • 69
Kirill V. Lyadvinsky
  • 89,955
  • 22
  • 127
  • 208
9

No, because it's not fully implemented on the compilers I use.

When C++0x comes out, and Visual Studio 2010 is fully released, along with a "matching" g++, I will use C++0x when I can. This is likely because I frequently start new projects (I make games).

Although I have an existed code-base, it changes every time I figure out a way to do something better; change isn't an obstacle for me. Taking advantage of C++0x would just be another change.

You'll find different opinions with larger code-bases. Some places prefer code to look uniform, and that means spotty C++0x isn't an option: they'd either have to convert the entire thing to take advantage of C++0x, or not use it.

Other places might encourage the use of C++0x features, and in spare time try to fix up older code to match.

And other places, like me, might immediately want to take advantage of all C++0x has to offer.

The answer is: it depends.

GManNickG
  • 459,504
  • 50
  • 465
  • 534
  • 3
    Do you put a lot of stock in "fully implemented"? Does it bother you that few (only two AFAIK) compilers support 98's export? –  Nov 18 '09 at 08:50
  • I'm not sure I understand your first question. About your second, not really. It would probably be nice, but then again templates in headers only is a pretty neat way to go. – GManNickG Nov 18 '09 at 08:54
  • 1
    I think the "first question" is just a comment that C++98 still isn't fully implemented in the most popular compilers, and 0x probably won't be either. – jalf Nov 18 '09 at 12:17
  • 2
    it bothers me that c99 isn't supported by many compilers. – Matt Joiner Jan 05 '10 at 08:33
  • @GMan: You said "because it's not fully implemented", so I was trying to find out exactly what you meant, as the current C++ standard isn't widely fully implemented either and even up to 5-6 years after it was final implementations had a ways to go, yet I imagine you (along with myself and many others) still widely used C++ in that time. –  Apr 08 '10 at 05:37
  • 1
    @Roger: You're right. By "fully implemented", I mean the criteria: "any specific feature of the language or library can be used", and by "used" I mean works for most expected cases. (No compiler exists that handles it *all* correctly.) Is that what you wanted to clarify? – GManNickG Apr 08 '10 at 06:00
6

No, but I would like to, especially for the lambda functionality.

GManNickG
  • 459,504
  • 50
  • 465
  • 534
Viktor Sehr
  • 12,172
  • 3
  • 52
  • 78
5

No.

All my application software is developed in Java. All my quick-and-dirty code is done in Python. All my low-level work is done in C. I don't generally use C++ (hence it hasn't affected me).

If I did use C++, I'd treat c++0x like I'm treating C1x - I'm making sure my code won't break but I'm not going to use the new features until the standard is done and dusted.

As to whether I'll use new features as soon as the standard ratifies, no. The process will be a gradual one. As maintenance gets rolled out for my current applications, I may add it, depending on the likely benefit.

Even new applications that I write will require a need for the new language features before I consider using those feautures.

paxdiablo
  • 772,407
  • 210
  • 1,477
  • 1,841
  • lol who downvoted this guy. at least he is humble about his use of C++ xD – Johannes Schaub - litb Nov 18 '09 at 11:21
  • 1
    god. for s subjective and argumentative question, why on earth would you downvote ANYbody? – jay_t55 Nov 19 '09 at 03:11
  • 3
    baeltazor: Downvotes on CW are much less about being wrong and much more about disagreement in opinion or similar, compared to "normal" answers. The original just said "No", and that certainly played a part in why some downvoted. –  Jan 05 '10 at 08:33
3

No, I'm still using VC6 most of the time :(, won't get on to C++0x until 2020 at the earliest (perhaps I should change company?)

Patrick
  • 7,599
  • 7
  • 49
  • 71
  • 3
    That is my answer. I don't know anyone named Patrick at work so that means changing company is not cut and dried... – jmucchiello Nov 18 '09 at 12:57
  • 8
    I changed company from a VC6 shop: I now use VB6 so it's not always a step in the right direction. – graham.reeds Nov 18 '09 at 14:23
  • @jmucchiello, did someone called Graham work at your place until recently? – Patrick Nov 18 '09 at 15:29
  • 2
    Calling vC6 a c++ compiler is like saying Afrikanns is just Dutch. Seriously worst c++ implementation to see the light of day. Does your company use Visual Source Safe as well? – deft_code Nov 18 '09 at 15:39
  • 5
    Of course we use visual source safe, what else would you use to keep your source safe? – Patrick Nov 18 '09 at 16:54
3

I'm using lots of C++0x, in particular variadic templates and functions, auto and decltype, and rvalue references.

While things can be a little fun, with g++ 4.5 and Visual Studio 10, these features are now fairly stable and work the same on both compilers.

Software projects I am starting now probably won't be released for a year or so, and by then I expect these new compilers to available as standard.

Chris Jefferson
  • 7,133
  • 9
  • 35
  • 59
2

Yes when toying arround on my own code that doesn't have the pretention to go out in the nature.

No when I code something that some people will use on older compilers.

Tristram Gräbener
  • 9,281
  • 3
  • 30
  • 48
2

Depends. I'm getting ready to use certain C++0x features in my master's thesis (although so far I've stuck with C++03 compilers mostly while waiting for VS2010b2)

I wouldn't use it in actual professional production work yet, though. For that, I'd want to wait until the standard had been finalized, and in the case of MSVC at least, until the compiler had been released in a non-beta version.

jalf
  • 229,000
  • 47
  • 328
  • 537
  • 1
    Why not? The exact compiler isn't important, I just need access to certain C++0x features. (If possible, I'd like to get it to run on GCC as well, of course. – jalf Jan 05 '10 at 13:35
1

I'm using the TR1 (regex, unordered_map, unordered_set...) and some boost features that'll be in the next standard like (hopefully) lexical_cast... everyday, not just today :)

anno
  • 5,780
  • 4
  • 25
  • 34
1

New job this year, so I willingly changed sides to the .NET/C# world. Most of the gripes I had with C++ are just non-existant in C#. They did a lot of things right (d'oh! Me praising MS)

I think C++ has become a monster, and when I last looked at it C++0x appeared to grow the monster instead of slimming it down to the really necessary subset.

Just my two cents for a subjective question ;)

Thorsten79
  • 9,812
  • 5
  • 35
  • 51
1

Learning about the features coming in for C++0x was interesting, in particular when I realized I was already using some of them via C++ TR1. So far the extended for ("foreach"), static_assert and the improvements in <functional> are the ones I'm using the more in C++0x programs.

It has also taught me a bit about code reuse. Trying to reduce the amount of code I have to change to adapt to C++0x, and at the same time preserve the code compatible with C++-pre-0x as much as I can (for eg.: library stuff) has taught me to integrate some C++0x fixes and elements to my pre-C++0x toolbox; in particular extending numeric_limits<> to include the const_ members, adding nullptr emulation, adding default_delete and similar constructs, and making use of the (apparently often forgotten, as I've not found code using it besides mine) [slist|forward_list].

I'd say using C++0x today has helped me better continue to use C++-pre-0x today. I'm not sure I'll be taking the leap to "full" C++0x anytime soon, considering Boost helps to cover some ground there. And that I don't intend to touch regexes or threads with C++ in a long, long time.

Community
  • 1
  • 1
Luis Machuca
  • 942
  • 8
  • 14
0

unordered_map. It should've been obvious when map was originally specified that not everyone would want to pay the cost of sorting their associative container keys but, oh well, at least we finally have a completely standardised STL container for it.

I'm also using the threading library and other stuff. Haha, I'm an early adopter! I'm not employed and I don't work directly with anyone so I can basically do as I like with these things. :)

Elliott
  • 935
  • 1
  • 7
  • 15
0

I am using static_assert, decltype, and, occasionally, r-value references

denisenkom
  • 403
  • 2
  • 3
0

for now, all I'm using is auto and decltype, since most of my code doesn't use anything necessitating r-value references or things of the like, and I'm quite satisfied with auto for now(beats declaring a an iterator of a vector of maps)

rtpg
  • 2,301
  • 14
  • 30