Skip to content

Conversation

iguessthislldo
Copy link
Member

No description provided.

This just uses the existing IDL2 support to enable using them in IDL4,
but it's not know how good that support is. At the very least a new test
will have to be made in tests/IDLv4.
@jwillemsen
Copy link
Member

Not all language mappings do support anonymous types, the IDL to C++11 language mapping doesn't support them because it is impossible to use IDL::traits for template meta programming when anonymous types are used in user IDL.

Personally I was not in favor of adding them back to IDL4, there was a reason to deprecate them in the past.

@mitza-oci
Copy link
Member

Not all language mappings do support anonymous types, the IDL to C++11 language mapping doesn't support them because it is impossible to use IDL::traits for template meta programming when anonymous types are used in user IDL.

Language mappings based on IDL3 should use the IDL3 settings of tao_idl.

Personally I was not in favor of adding them back to IDL4, there was a reason to deprecate them in the past.

We can't do anything about that at this point, since they are widely used in XTypes and other DDS specs, and also in ROS2.

@jwillemsen
Copy link
Member

We can't do anything about that at this point, since they are widely used in XTypes and other DDS specs, and also in ROS2.

:-( regret to hear that, it is a small effort to just add a typedef and use that. It would make template meta programming using IDL::traits so much easier for the user, especially in the DDS world where a lot of APIs are just templated APIs.

@okellogg
Copy link
Contributor

okellogg commented Jun 9, 2020

:-( regret to hear that, it is a small effort to just add a typedef and use that.

+1

It would make template meta programming using IDL::traits so much easier [...]

Similar in Ada where they create problems due to the language's particularly strong typing.
Since early on we have had a design rule prohibiting anon types.

@jwillemsen
Copy link
Member

We should make it possible for the user to enable IDL4 but disallow anonymous types so that any developments using TAO doesn't break Ada/C++11 parts of the same system later on

To allow incompatible backends to avoid having to deal with anonymous
types when using IDL4.
@iguessthislldo
Copy link
Member Author

Alright now it should be possible to override the IDL4 anonymous behavior from the backend or the command line the same as with IDL3.

@mitza-oci mitza-oci requested a review from jwillemsen June 12, 2020 17:33
@jwillemsen
Copy link
Member

When you tested this I am ok

@iguessthislldo iguessthislldo merged commit 6903c62 into DOCGroup:master Jun 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

4 participants