C++0x language feature checklist
CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Page 1 of 2 12 LastLast
Results 1 to 15 of 18

Thread: C++0x language feature checklist

Hybrid View

  1. #1
    Join Date
    Dec 2008
    Posts
    7

    C++0x language feature checklist

    Hi Microsoft!

    I use vc9 every day and I love it. I'm looking forward to vc10 and I hope it will support many more C++0x features than the four announced so far.

    I admit I haven't read the C++0x draft spec in detail, but this wikipedia article (http://en.wikipedia.org/wiki/C%2B%2B0x) has a decent summary of its new features.

    Below is a list of C++0x language features culled from the aforementioned wikipedia summary as well as what I've heard so far as to their support in vc10. Would you folks care to let us know as to which of the other features might make it in for the release version of vc10?

    vc10 C++0x LANGUAGE FEATURE
    -----------------------------------------------------------------------
    YES - Rvalue reference and move semantics
    ? - Generalized constant expressions
    ? - Modification to the definition of plain old data
    ? - Extern template
    ? - Initializer lists
    ? - Uniform initialization
    YES - auto / Type determination
    ? - Range-based for-loop
    YES - Lambda functions and expressions
    ? - Alternate function syntax
    ? - Concepts
    ? - Object construction improvement
    ? - nullptr
    ? - Strongly typed enumerations
    ? - Angle bracket fix
    ? - Explicit conversion operators
    ? - Template typedefs
    ? - Transparent garbage collection
    ? - Unrestricted unions
    NO - Variadic templates
    ? - New string literals
    ? - User-defined literals
    ? - Multitasking memory model
    ? - Thread-local storage
    ? - Defaulting/deleting of standard functions on C++ objects
    ? - Type long long int
    YES - Static assertions
    ? - sizeof on members without explicit object

    Thanks!

  2. #2
    Join Date
    Dec 2008
    Posts
    7

    Re: C++0x language feature checklist

    And conversely, could you also please comment on which features will NOT be in the release version of vc10?

    I understand that concepts is a NO, any others?

  3. #3
    Join Date
    May 2006
    Posts
    22

    Re: C++0x language feature checklist

    Here's my answer:

    YES - Rvalue reference and move semantics
    No - Generalized constant expressions
    No - Modification to the definition of plain old data
    YES- Extern template (note: we have supported this since at least Visual C++ 4.0)
    No - Initializer lists
    No - Uniform initialization
    YES - auto / Type determination
    No - Range-based for-loop (require concepts)
    YES - Lambda functions and expressions
    ? - Alternate function syntax - what is this?
    No - Concepts
    No - Object construction improvement
    No - nullptr
    No - Strongly typed enumerations
    YES - Angle bracket fix (this is in Visual C++ 2008)
    No - Explicit conversion operators
    No - Template typedefs
    No - Transparent garbage collection
    No - Unrestricted unions
    No - Variadic templates
    No - New string literals
    No - User-defined literals
    Probably - Multitasking memory model
    YES - Thread-local storage (but still using the Microsoft extension)
    No - Defaulting/deleting of standard functions on C++ objects
    YES - Type long long int
    YES - Static assertions
    No - sizeof on members without explicit object
    Jonathan Caves
    Visual C++ Compiler Team

  4. #4
    Join Date
    Dec 2008
    Posts
    1

    Unhappy Re: C++0x language feature checklist

    Quote Originally Posted by joncaves View Post
    Here's my answer:
    No - Initializer lists
    No - Uniform initialization
    No initializer lists or uniform initialization? Boo, those were my personal pet features I would've liked to see, I find the C++ initialization bugaboos they fix annoying. Oh well I've waited this long, what's a few more years....

  5. #5
    Join Date
    Nov 2008
    Location
    England
    Posts
    748

    Re: C++0x language feature checklist

    I was looking forward to strongly typed enums and template typedefs and maybe unrestricted unions though cant remember the last time I used a union but thats maybe because as they are they are not particularly useful except for the alignment trick annotated in Modern C++ Design.
    Get Microsoft Visual C++ Express here or CodeBlocks here.
    Get STLFilt here to radically improve error messages when using the STL.
    Get these two can't live without C++ libraries, BOOST here and Loki here.
    Check your code with the Comeau Compiler and FlexeLint for standards compliance and some subtle errors.
    Always use [code] code tags [/code] to make code legible and preserve indentation.
    Do not ask for help writing destructive software such as viruses, gamehacks, keyloggers and the suchlike.

  6. #6
    Join Date
    Apr 1999
    Posts
    50

    Re: C++0x language feature checklist

    Iím surprised not to see strongly typed enums as I thought they were based on managed C++ enums.

    Also, what is the timescale for a future release with the rest of C++0x?

  7. #7
    Join Date
    Dec 2008
    Posts
    7

    Re: C++0x language feature checklist

    Thanks for the clarifications, very helpful!

    re: Alternate function syntax, see:
    http://en.wikipedia.org/wiki/C%2B%2B...unction_syntax
    for explanation.

    BTW, kudos to MS for adding C++0x features. IMHO you've made good choices of prioritizing based on spec stability and user needs.

  8. #8
    Join Date
    May 2006
    Posts
    22

    Re: C++0x language feature checklist

    Ah: this feature is officially known as "late specified return type" and it will be supported in Dev10. What I understand by "alternate function syntax" was a proposal to unify the syntax used for lambdas and functions into one form. Something like:

    Code:
    [] f(int) -> int
    {
        return 42;
    }
    This proposal was rejected at the last C++ Committe meeting though I suspect it might re-appear.
    Jonathan Caves
    Visual C++ Compiler Team

  9. #9
    Join Date
    Dec 2008
    Posts
    21

    Re: C++0x language feature checklist

    Hello

    I would not “expect” C++0x goodies to arrive in Service Packs (I know TR1 did arrive in a Service Pack - so it can happen - but I would not want this to be any type of expectation.)

    Thanks
    Damien
    Last edited by Damien Watkins; December 12th, 2008 at 01:14 PM.

  10. #10
    Join Date
    Dec 2008
    Posts
    2

    Re: C++0x language feature checklist

    I'd like to know what kind of C++0x support you're aiming for in the long term. Browsing through the minutes of the C++ committee meetings, it looks like Microsoft has attempted to veto a handful of proposals, with varying success. In particular, it looks like MS refused to ever implement the new attributes, even though they were accepted into the standard in the end. Is that decision final? We're never going to see a compliant implementation of C++0x from you?

    As for your prioritization for VC10, I think you've made some sensible choices. Shame so many features had to be left out, but given that you're targeting essentially the same launch window as the new standard itself, I can't blame you.

  11. #11
    Join Date
    Dec 2008
    Posts
    7

    Re: C++0x language feature checklist

    @jalf, could you please post some links to the "new attributes" discussion you mention? I'd like to read up on this.

  12. #12
    Join Date
    Nov 2008
    Location
    Netherlands
    Posts
    77

    Re: C++0x language feature checklist

    Sorry to say this, but how can you say no to template typedefs?
    Do i really need to make wrapper classes to do this simple typedef thing?

    Another thing is when all template parameters are default you must type <> after the typename.
    Its annoying..

  13. #13
    Join Date
    May 2006
    Posts
    22

    Re: C++0x language feature checklist

    Some comments on the previous posts - mostly in reverse order

    template typedefs - while this is relatively simple to implement we felt that it just didn't provide as much value as the features we did choose implement: and as you state there is a simple work-around.

    Not requiring the "<>" when all the template parameters are defaulted - this is not possible in C++ (even in C++-0x). You must let the compiler know that this is a specialization of a class template otherwise parsing will fail.

    I still think that the proposal to add attributes to C++ is misguided and over simplistic: also Visual C++ users already have 3 ways to add meta-information to a program (declspec, pragma, attributes) - they don't need a fourth way. I am not saying we'll never support this feature - but it will always be somewhere near the bottom of the stack.

    We will add more C++-0x features in the future - but what and when is currently unknown: it all depends on user feedback.
    Jonathan Caves
    Visual C++ Compiler Team

  14. #14
    Join Date
    Nov 2008
    Location
    Netherlands
    Posts
    77

    Re: C++0x language feature checklist

    @joncaves

    im sorry for not being pecific but i wasnt talking about template specialization i was talking about defining variables... Tho its been a along time since i used "typename<> variable".
    Sorry again for not being pecific. Im not sure if its any diffrent now from the last time that i used VC++ with default template parameters

    And your right there is a work around but its really annoying using ::T bit, and i get tangled in giving the classes the name i wanted to give.

  15. #15
    Lindley is offline Elite Member Power Poster
    Join Date
    Oct 2007
    Location
    Fairfax, VA
    Posts
    10,885

    Re: C++0x language feature checklist

    The only attribute I've ever used is GNU's "unused" to avoid a warning on static functions that don't get called. At present I don't believe VS2005 warns for that, so I haven't needed the MS version. That said, if there *were* a standard specification for such things, I might use them more often.

    One of the things I hate doing is writing code that ties me to a particular compiler. I always #ifdef such code and provide alternatives when it's necessary, but that can get messy. So anything that reduces the need to do that is a good thing.

Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


Azure Activities Information Page

Windows Mobile Development Center


Click Here to Expand Forum to Full Width

This is a CodeGuru survey question.


Featured


HTML5 Development Center