new features

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Servé Lau

    #1

    new features

    I've read the new features that are coming to the next VC and they all sound
    fine.
    But I was missing new standard C++ features, will the features like export
    still not be implemented?

    What about C features like designated initializers?
    struct X { int x; int y; };

    X x = { .x = 2, .y = 3 };


  • Carl Daniel [VC++ MVP]

    #2
    Re: new features

    Servé Lau wrote:[color=blue]
    > I've read the new features that are coming to the next VC and they
    > all sound fine.
    > But I was missing new standard C++ features, will the features like
    > export still not be implemented?[/color]

    export won't be implemented in Whidbey (aka "VC8"). The only other major
    standards compliance features that VC is missing are two-phase lookup of
    dependent names in templates and full support for exception specifications.
    AFIAK, neither of these will be implemented in Whidbey either.
    [color=blue]
    >
    > What about C features like designated initializers?
    > struct X { int x; int y; };
    >
    > X x = { .x = 2, .y = 3 };[/color]

    AFIAK, no C99 features are planned for Whidbey.

    -cd


    Comment

    • Edward Diener

      #3
      Re: new features

      Carl Daniel [VC++ MVP] wrote:[color=blue]
      > Servé Lau wrote:[color=green]
      >> I've read the new features that are coming to the next VC and they
      >> all sound fine.
      >> But I was missing new standard C++ features, will the features like
      >> export still not be implemented?[/color]
      >
      > export won't be implemented in Whidbey (aka "VC8"). The only other
      > major standards compliance features that VC is missing are two-phase
      > lookup of dependent names in templates and full support for exception
      > specifications. AFIAK, neither of these will be implemented in
      > Whidbey either.[/color]

      Not implementing two-phase lookup of dependent names is poor. It is by far
      more important than 'export' or 'exception specifications' , both of the
      which may very well be re-worked in the next reiteration of C++. But the
      former is essential for template programming ( see "C++ Templates" by
      Josuttis and Vandevoorde ), and VC++ not doing it will continue to lead to
      template programming problems in certain areas.


      Comment

      • Servé Lau

        #4
        Re: new features

        "Carl Daniel [VC++ MVP]" <cpdaniel_remov e_this_and_nosp am@mvps.org.nos pam>
        wrote in message news:%23zbgDBCv DHA.2448@TK2MSF TNGP09.phx.gbl. ..[color=blue]
        > export won't be implemented in Whidbey (aka "VC8"). The only other major
        > standards compliance features that VC is missing are two-phase lookup of
        > dependent names in templates and full support for exception[/color]
        specifications.[color=blue]
        > AFIAK, neither of these will be implemented in Whidbey either.[/color]

        two-phase lookup would be something invisible to us developers right?
        [color=blue][color=green]
        > >
        > > What about C features like designated initializers?
        > > struct X { int x; int y; };
        > >
        > > X x = { .x = 2, .y = 3 };[/color]
        >
        > AFIAK, no C99 features are planned for Whidbey.[/color]

        That's a shame :)
        I can understand that VLA's aren't implemented, we've seen enough buffer
        overflows.
        But designated initializers let you write safer code and the safer C99
        functions like snprintf would also be in the best interest of us developers.
        And stdint.h and inttypes.h with its macro's like PRId64 would be great now
        that the world is ready for 64-bit. They are very easy to implement also.

        But the .NET features are nice. No more double underscore keywords,
        generics, destructors, sounds good.


        Comment

        • Edward Diener

          #5
          Re: new features

          Servé Lau wrote:[color=blue]
          > "Carl Daniel [VC++ MVP]"
          > <cpdaniel_remov e_this_and_nosp am@mvps.org.nos pam> wrote in message
          > news:%23zbgDBCv DHA.2448@TK2MSF TNGP09.phx.gbl. ..[color=green]
          >> export won't be implemented in Whidbey (aka "VC8"). The only other
          >> major standards compliance features that VC is missing are two-phase
          >> lookup of dependent names in templates and full support for
          >> exception specifications. AFIAK, neither of these will be
          >> implemented in Whidbey either.[/color]
          >
          > two-phase lookup would be something invisible to us developers right?[/color]

          Not if you are writing template classes. Without two-phase lookup, certain
          template construct and usages can lead to instantiation errors.


          Comment

          • Brandon Bray [MSFT]

            #6
            Re: new features

            Servé Lau wrote:[color=blue]
            >
            > two-phase lookup would be something invisible to us developers right?[/color]

            Because two-phase lookup is really the technique that enables dependent
            names, it's dependent names that you would get. Enabling dependent names on
            a code base that does not already make use of them is highly likely to
            break.

            I've heard experiences from other compiler implementors who had implemented
            dependent names for code bases that did not use them to begin with. None of
            the code compiled. The breakage was severe. These code bases ended up
            requiring compiler modes that did not use dependent names. Our
            investigations showed this was a common scenario.

            The majority of existing code does not use dependent names, and enabling it
            would likely break the code in very subtle ways. When such breaks occur, we
            like to have diagnostics that help alert the programmer. Due to both of
            these facts, we did not have enough time to work on this feature in Whidbey.

            Cheerio!

            --
            Brandon Bray http://blogs.gotdotnet.com/branbray/
            This posting is provided AS IS with no warranties, and confers no rights.


            Comment

            • Brandon Bray [MSFT]

              #7
              Re: new features

              Carl Daniel [VC++ MVP] wrote:[color=blue]
              > export won't be implemented in Whidbey (aka "VC8"). The only other major
              > standards compliance features that VC is missing are two-phase lookup of
              > dependent names in templates and full support for exception
              > specifications. AFIAK, neither of these will be implemented in Whidbey
              > either.[/color]

              That's all correct. We are adding support for a number of Unicode features
              from the standard, so we are making progress on standards conformance a bit.
              Granted it would be nice to do more, but we had to choose which standard
              feature was the most important -- it was Unicode.
              [color=blue]
              > AFIAK, no C99 features are planned for Whidbey.[/color]

              Actually, we are doing some C99 features like floating-point models. Some of
              the more extravagent language features we are not doing until the C++
              standards committee has time to digest them.

              Cheerio!

              --
              Brandon Bray http://blogs.gotdotnet.com/branbray/
              This posting is provided AS IS with no warranties, and confers no rights.


              Comment

              • Hendrik Schober

                #8
                Re: new features

                Brandon Bray [MSFT] <branbray@onlin e.microsoft.com > wrote:[color=blue]
                > Servé Lau wrote:[color=green]
                > >
                > > two-phase lookup would be something invisible to us developers right?[/color]
                >
                > Because two-phase lookup is really the technique that enables dependent
                > names, it's dependent names that you would get. Enabling dependent names on
                > a code base that does not already make use of them is highly likely to
                > break.
                > [...][/color]

                OTOH without two-phase lookup you get into
                all kinds of trouble if some user out there
                for the first time tries to instanciate your
                template for the very first time. _That_ is
                my concern about your decision to delay the
                implementation of this feature.
                For old code, this could be turned off. But
                I want my code to be compatible with the
                future, not with the past.
                [color=blue]
                > Cheerio![/color]

                Schobi

                --
                SpamTrap@gmx.de is never read
                I'm Schobi at suespammers dot org

                "Sometimes compilers are so much more reasonable than people."
                Scott Meyers


                Comment

                • Hendrik Schober

                  #9
                  Re: new features

                  Brandon Bray [MSFT] <branbray@onlin e.microsoft.com > wrote:[color=blue]
                  > [...]
                  > That's all correct. We are adding support for a number of Unicode features
                  > from the standard, so we are making progress on standards conformance a bit.
                  > Granted it would be nice to do more, but we had to choose which standard
                  > feature was the most important -- it was Unicode.[/color]

                  But that's only because you assigned std
                  conformance such a low priority.
                  [color=blue]
                  > [...]
                  > Cheerio![/color]

                  Schobi

                  --
                  SpamTrap@gmx.de is never read
                  I'm Schobi at suespammers dot org

                  "Sometimes compilers are so much more reasonable than people."
                  Scott Meyers


                  Comment

                  Working...