CORBA IDL에서 구조체 멤버의 기본값을 정의 할 수 있습니까? 의 예로 들어 다음과 같은 구조체를 보자CORBA IDL : 구조체 멤버의 기본값
struct Example
{
boolean test;
};
을 나는 C++, 변수 '테스트'객체 생성 후 초기화되지 않은 것이 IDL을 컴파일합니다. 명시 적으로 true로 바뀔 때까지 항상 false로 설정하고 싶습니다.
CORBA IDL에서 구조체 멤버의 기본값을 정의 할 수 있습니까? 의 예로 들어 다음과 같은 구조체를 보자CORBA IDL : 구조체 멤버의 기본값
struct Example
{
boolean test;
};
을 나는 C++, 변수 '테스트'객체 생성 후 초기화되지 않은 것이 IDL을 컴파일합니다. 명시 적으로 true로 바뀔 때까지 항상 false로 설정하고 싶습니다.
OMG IDL 대 C++ 매핑은 구조체 멤버를 기본 초기화하지 않습니다. 언급했듯이 IDL에서 C++ 11 로의 매핑은 모든 기본 유형을 포함하여 모든 유형에 대한 기본값을 지정합니다. 현재 C++ 11을 지원하는 컴파일러/OS를 사용하는 경우 IDL에서 C++ 11 로의 매핑을 사용할 수 있어야하므로 애플리케이션 코드에서 C++ 11을 사용할 필요가 없습니다.
저는 CORBA 구현을 위해 omniORB와 VisiBroker를 사용했습니다. 이 idl 컴파일러는 디폴트 값 구조를 지원하지 않습니다.
IDL을 C++로 컴파일하면 _how_이라고 표시 할 수 있습니다. 현재 C++은 멤버에 대한 초기화자를 허용합니다. 즉, 'bool test = false;'하지만 IDL 컴파일러가이를 이해하는지 모르겠습니다. – MSalters
@MSalters 나는 생성자 초기화 목록을 생각하고 있었다. 불행히도 C++ 11을 사용할 수 없습니다. 컴파일을 위해 omniORB 4.0의 omniidl을 사용합니다. – user3726374