SlideShare a Scribd company logo
IDL to C++0x/C++11
                   Initial submission

                      OMG document mars/2011-09-04




Copyright © 2011                                     Page 1
RFP asks for

        The new mapping should be functionally equivalent to the existing
        IDL to C++ mapping. While the syntax may change, an application
        should be able to implement functionality identical to that which can
        be achieved with the current IDL to C++ mapping.
        Applications programmed using alternative language mappings
        should inter operate transparently. An application utilizing this new
        language mapping should have no awareness, other than
        informational, of what language mapping a peer application is using.
        The new language mapping should be designed to co-exist with
        other technologies. Specifically, it should not interfere with the
        namespaces used by other OMG specifications, or commonly used
        packages.
        Interoperability between the IDL to C++ and IDL to C++0x mapping in
        the same compilation unit is not required.
Copyright © 2011                                                          Page 2
C++11

        C++0x was unanimously approved August 12 th
        2011
        Is now formally available as ISO/IEC 14882:2011
        Unofficially named C++11




Copyright © 2011                                      Page 3
Goal of IDL to C++11

        Simplified mapping for C++11
        Make use of the new C++11 features to
          –   Gain performance
          –   Reduce coding errors
          –   Reduce amount of code
          –   No need to create conversion between STL/C++
              types and IDL based types




Copyright © 2011                                             Page 4
Concepts

        Map basic types to their C++11 counterparts
        IDL (w)string map to std::(w)string
        IDL sequences map to std::vector




Copyright © 2011                                      Page 5
Interface mapping

        When defining interface Foo, than Foo is the
        object reference
        C++ traits are used to determine the type for
        the proxy and skeleton base classes, not the
        name and how they are implemented
         –   Foo::local_base_type
         –   Foo::servant_type
         –   Foo::servant_base_type
        Foo as object reference has the semantics of
        std::shared_ptr<>
Copyright © 2011                                        Page 6
Nil object references

        C++11 has a new type for a nil pointer: nullptr_t
        Object references can be checked for nil by
        comparing them with nullptr
        Explicit bool conversion operators for usage in
        for example if statements




Copyright © 2011                                            Page 7
Argument passing

        Argument passing is the same for any type
          –   in: const T&
          –   inout: T&
          –   out: T&
          –   return: T
        C++ method interfaces will not change if for
        example a typedef is changed from basic type
        to complex type.


Copyright © 2011                                       Page 8
Struct/union


       Struct and union now both map to a C++ class
       Providing constructor(s), copy and move
       operators
       Set of accessors for each member:
        –          void A (const T&);
        –          void A (T&&);
        –          const T& A (void) const;
        –          T& A (void);


Copyright © 2011                                        Page 9
What next?

        Address comments on initial submission
        Add mapping for arrays/abstract/valuetype/any
        Extend mapping with sequence traits, ostream
        insertion operators, and more if needed
        Check out IDL annotations when they are part of
        the formal IDL specification. Mostly interesting for
        user defined mapping of IDL types.



Copyright © 2011                                          Page 10
Proof of concept

        New language binding for TAO: IDL2C++11
        Supports the initial submission and more
        More details on http://osportal.remedy.nl and
        http://www.orbzone.org




Copyright © 2011                                        Page 11
Thanks for your attention



                      Johnny Willemsen
                   <jwillemsen@remedy.nl>



                   http://www.theaceorb.nl
Copyright © 2011                               Page 12

More Related Content

What's hot (12)

PPTX
OODP Unit 1 OOPs classes and objects
Shanmuganathan C
 
PDF
C++ vs python
AbdulhameedMandili
 
PDF
AMI4CCM_IDL2CPP
Remedy IT
 
ODP
Developing Multilingual Applications
Priyank Kapadia
 
PPT
ITU - MDD - Textural Languages and Grammars
Tonny Madsen
 
DOCX
ภาษาคอมพิวเตอร์
wichaikraisorn
 
PDF
Doppl development iteration #10
Diego Perini
 
PDF
Introduction to c++ ppt 1
Prof. Dr. K. Adisesha
 
PPTX
Python vs c++ ppt
AllProgrammingHelp
 
PDF
C++ vs python the best ever comparison
calltutors
 
PPTX
Creating Domain Specific Languages in F#
Tomas Petricek
 
PPT
GNU Internationalization Presentation
Joe Turner
 
OODP Unit 1 OOPs classes and objects
Shanmuganathan C
 
C++ vs python
AbdulhameedMandili
 
AMI4CCM_IDL2CPP
Remedy IT
 
Developing Multilingual Applications
Priyank Kapadia
 
ITU - MDD - Textural Languages and Grammars
Tonny Madsen
 
ภาษาคอมพิวเตอร์
wichaikraisorn
 
Doppl development iteration #10
Diego Perini
 
Introduction to c++ ppt 1
Prof. Dr. K. Adisesha
 
Python vs c++ ppt
AllProgrammingHelp
 
C++ vs python the best ever comparison
calltutors
 
Creating Domain Specific Languages in F#
Tomas Petricek
 
GNU Internationalization Presentation
Joe Turner
 

Viewers also liked (7)

PDF
OMG RealTime Workshop 2011 CCM presentation
Remedy IT
 
PDF
A real-time middleware and component model for a fractionated spacecraft
Remedy IT
 
PDF
AXCIOMA, the component framework for distributed, real-time and embedded systems
Remedy IT
 
PDF
CORBA Programming with TAOX11/C++11 tutorial
Remedy IT
 
PDF
Comparing IDL to C++ with IDL to C++11
Remedy IT
 
PDF
Integrating DDS into AXCIOMA, the component approach
Remedy IT
 
PDF
Revised submission for Unified Component Model (UCM) for Distributed, Real-Ti...
Remedy IT
 
OMG RealTime Workshop 2011 CCM presentation
Remedy IT
 
A real-time middleware and component model for a fractionated spacecraft
Remedy IT
 
AXCIOMA, the component framework for distributed, real-time and embedded systems
Remedy IT
 
CORBA Programming with TAOX11/C++11 tutorial
Remedy IT
 
Comparing IDL to C++ with IDL to C++11
Remedy IT
 
Integrating DDS into AXCIOMA, the component approach
Remedy IT
 
Revised submission for Unified Component Model (UCM) for Distributed, Real-Ti...
Remedy IT
 
Ad

Similar to IDL to C++11 initial submission presentation (20)

PDF
AMI4CCM, custom DDS connectors, and IDL to C++11
Remedy IT
 
PPTX
Return of c++
Yongwei Wu
 
PPTX
Modern C++ Lunch and Learn
Paul Irwin
 
DOCX
Apa style-1 (1)
Nicolas Jia Quan
 
PDF
C++primer
leonlongli
 
PDF
The Ceylon Type System - Gavin King presentation at QCon Beijing 2011
devstonez
 
PDF
The Ceylon Type System
Michael Scovetta
 
PPT
Stroustrup c++0x overview
Vaibhav Bajaj
 
PPTX
C++ 11 Features
Jan Rüegg
 
PDF
Substitutability
Kevlin Henney
 
PDF
Modernizing SCA through new Object Management Group (OMG) standards
Remedy IT
 
PPT
lecture02-cpp.ppt
MZGINBarwary
 
PPT
CORBA IDL
Roy Antony Arnold G
 
PPT
Course1
Constantin Nicolae
 
PDF
c-for-c-programmers.pdf
Salar32
 
PPTX
Oop c++class(final).ppt
Alok Kumar
 
PDF
C++ interview question
Durgesh Tripathi
 
PDF
IDL to C++0x Draft RFP presentation
Johnny Willemsen
 
PDF
C++11
ppd1961
 
PPTX
Whats New in Visual Studio 2012 for C++ Developers
Rainer Stropek
 
AMI4CCM, custom DDS connectors, and IDL to C++11
Remedy IT
 
Return of c++
Yongwei Wu
 
Modern C++ Lunch and Learn
Paul Irwin
 
Apa style-1 (1)
Nicolas Jia Quan
 
C++primer
leonlongli
 
The Ceylon Type System - Gavin King presentation at QCon Beijing 2011
devstonez
 
The Ceylon Type System
Michael Scovetta
 
Stroustrup c++0x overview
Vaibhav Bajaj
 
C++ 11 Features
Jan Rüegg
 
Substitutability
Kevlin Henney
 
Modernizing SCA through new Object Management Group (OMG) standards
Remedy IT
 
lecture02-cpp.ppt
MZGINBarwary
 
c-for-c-programmers.pdf
Salar32
 
Oop c++class(final).ppt
Alok Kumar
 
C++ interview question
Durgesh Tripathi
 
IDL to C++0x Draft RFP presentation
Johnny Willemsen
 
C++11
ppd1961
 
Whats New in Visual Studio 2012 for C++ Developers
Rainer Stropek
 
Ad

More from Remedy IT (20)

PDF
Integrating DDS into AXCIOMA, the component approach
Remedy IT
 
PDF
AXCIOMA, the component framework for distributed, real-time and embedded systems
Remedy IT
 
PDF
AXCIOMA, the internals, the component framework for distributed, real-time, a...
Remedy IT
 
PDF
Remedy IT Company presentation
Remedy IT
 
PDF
AXCIOMA, the internals, the component framework for distributed, real-time, a...
Remedy IT
 
PDF
Modernizing SCA through new Object Management Group (OMG) standards
Remedy IT
 
PDF
ACE/TAO/CIAO/DAnCE Maintenance overview
Remedy IT
 
PDF
Remedy IT Revised Submission Presentation for the Unified Component Model (UC...
Remedy IT
 
PDF
DDS Programming with IDL to C++11 tutorial
Remedy IT
 
PDF
Component Based DDS with C++11 and R2DDS
Remedy IT
 
PDF
Component Technologies for Fractionated Satellites
Remedy IT
 
PDF
UCM Initial Submission presentation
Remedy IT
 
PDF
Remedy IT Initial Submission for the Unified Component Model (UCM) for Distri...
Remedy IT
 
PDF
Unified Component Model for Distributed, Real- Time and Embedded Systems Requ...
Remedy IT
 
PDF
Request For Proposal Unified Component Model for Distributed, Real-Time and E...
Remedy IT
 
PDF
Test What Matters Most
Remedy IT
 
PDF
IDL to C++03 RFC
Remedy IT
 
PDF
Model Driven, Component Based Development for CBDDS and IDL to C++11
Remedy IT
 
PDF
F6COM: A Case Study in Extending Container Services through Connectors
Remedy IT
 
PDF
Draft Request For Proposal Unified Component Model for Distributed, Real-Time...
Remedy IT
 
Integrating DDS into AXCIOMA, the component approach
Remedy IT
 
AXCIOMA, the component framework for distributed, real-time and embedded systems
Remedy IT
 
AXCIOMA, the internals, the component framework for distributed, real-time, a...
Remedy IT
 
Remedy IT Company presentation
Remedy IT
 
AXCIOMA, the internals, the component framework for distributed, real-time, a...
Remedy IT
 
Modernizing SCA through new Object Management Group (OMG) standards
Remedy IT
 
ACE/TAO/CIAO/DAnCE Maintenance overview
Remedy IT
 
Remedy IT Revised Submission Presentation for the Unified Component Model (UC...
Remedy IT
 
DDS Programming with IDL to C++11 tutorial
Remedy IT
 
Component Based DDS with C++11 and R2DDS
Remedy IT
 
Component Technologies for Fractionated Satellites
Remedy IT
 
UCM Initial Submission presentation
Remedy IT
 
Remedy IT Initial Submission for the Unified Component Model (UCM) for Distri...
Remedy IT
 
Unified Component Model for Distributed, Real- Time and Embedded Systems Requ...
Remedy IT
 
Request For Proposal Unified Component Model for Distributed, Real-Time and E...
Remedy IT
 
Test What Matters Most
Remedy IT
 
IDL to C++03 RFC
Remedy IT
 
Model Driven, Component Based Development for CBDDS and IDL to C++11
Remedy IT
 
F6COM: A Case Study in Extending Container Services through Connectors
Remedy IT
 
Draft Request For Proposal Unified Component Model for Distributed, Real-Time...
Remedy IT
 

Recently uploaded (20)

PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PDF
CloudStack GPU Integration - Rohit Yadav
ShapeBlue
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PDF
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
PPTX
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
PDF
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
PDF
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
PPTX
Darren Mills The Migration Modernization Balancing Act: Navigating Risks and...
AWS Chicago
 
PPTX
Top Managed Service Providers in Los Angeles
Captain IT
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
CloudStack GPU Integration - Rohit Yadav
ShapeBlue
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
Ampere Offers Energy-Efficient Future For AI And Cloud
ShapeBlue
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
Darren Mills The Migration Modernization Balancing Act: Navigating Risks and...
AWS Chicago
 
Top Managed Service Providers in Los Angeles
Captain IT
 

IDL to C++11 initial submission presentation

  • 1. IDL to C++0x/C++11 Initial submission OMG document mars/2011-09-04 Copyright © 2011 Page 1
  • 2. RFP asks for The new mapping should be functionally equivalent to the existing IDL to C++ mapping. While the syntax may change, an application should be able to implement functionality identical to that which can be achieved with the current IDL to C++ mapping. Applications programmed using alternative language mappings should inter operate transparently. An application utilizing this new language mapping should have no awareness, other than informational, of what language mapping a peer application is using. The new language mapping should be designed to co-exist with other technologies. Specifically, it should not interfere with the namespaces used by other OMG specifications, or commonly used packages. Interoperability between the IDL to C++ and IDL to C++0x mapping in the same compilation unit is not required. Copyright © 2011 Page 2
  • 3. C++11 C++0x was unanimously approved August 12 th 2011 Is now formally available as ISO/IEC 14882:2011 Unofficially named C++11 Copyright © 2011 Page 3
  • 4. Goal of IDL to C++11 Simplified mapping for C++11 Make use of the new C++11 features to – Gain performance – Reduce coding errors – Reduce amount of code – No need to create conversion between STL/C++ types and IDL based types Copyright © 2011 Page 4
  • 5. Concepts Map basic types to their C++11 counterparts IDL (w)string map to std::(w)string IDL sequences map to std::vector Copyright © 2011 Page 5
  • 6. Interface mapping When defining interface Foo, than Foo is the object reference C++ traits are used to determine the type for the proxy and skeleton base classes, not the name and how they are implemented – Foo::local_base_type – Foo::servant_type – Foo::servant_base_type Foo as object reference has the semantics of std::shared_ptr<> Copyright © 2011 Page 6
  • 7. Nil object references C++11 has a new type for a nil pointer: nullptr_t Object references can be checked for nil by comparing them with nullptr Explicit bool conversion operators for usage in for example if statements Copyright © 2011 Page 7
  • 8. Argument passing Argument passing is the same for any type – in: const T& – inout: T& – out: T& – return: T C++ method interfaces will not change if for example a typedef is changed from basic type to complex type. Copyright © 2011 Page 8
  • 9. Struct/union Struct and union now both map to a C++ class Providing constructor(s), copy and move operators Set of accessors for each member: – void A (const T&); – void A (T&&); – const T& A (void) const; – T& A (void); Copyright © 2011 Page 9
  • 10. What next? Address comments on initial submission Add mapping for arrays/abstract/valuetype/any Extend mapping with sequence traits, ostream insertion operators, and more if needed Check out IDL annotations when they are part of the formal IDL specification. Mostly interesting for user defined mapping of IDL types. Copyright © 2011 Page 10
  • 11. Proof of concept New language binding for TAO: IDL2C++11 Supports the initial submission and more More details on http://osportal.remedy.nl and http://www.orbzone.org Copyright © 2011 Page 11
  • 12. Thanks for your attention Johnny Willemsen <[email protected]> http://www.theaceorb.nl Copyright © 2011 Page 12