C++ 11에서 유니온을 초기화할 수 없습니다.

아르데버

std::pair에서 통합을 초기화할 수 없습니다.

나는 이런 종류의 typedef를 가지고있다

enum EValueType
{
    Int,
    Double,
    Variable,
    Unknown
};

union UValueContainer
{
    int __int;
    double __double;
    double* __variable;
};

typedef std::pair<EValueType, UValueContainer> variant;

variant유형 속성을 가져오는 생성자가 있는 기본 클래스가 있습니다.

class fooBase
{
    fooBase(variant attribute);
    ...
}

기본 클래스 생성자의 인수를 초기화해야 하는 생성자가 있는 파생 클래스.

class fooDerived : public fooBase
{
    fooDerived(double* value) : fooBase({Variable, UValueContainer{.__variable = value}}
}

내가 어떻게 해?

아르데버

@DeiDei가 내 게시물에 댓글을 달았듯이 저는 각 유형에 대해 생성자를 선언/정의했습니다. 이제 문제가 해결되었습니다. 하지만 이 문제를 해결할 수 있는 다른 방법이 없는지 확인하고 싶습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

C에서 큰 2D 배열을 초기화 할 수 없습니다.

초기화에서 유형을 변환 할 수 없습니다.

C2440: '초기화': 'A<double>'에서 'A<double>'(으)로 변환할 수 없습니다.

Android에서 Parse 용 Mandrill을 초기화 할 수 없습니다.

Julia에서 큰 행렬을 초기화 할 수 없습니다.

C ++ : 같은 형식의 상수에서 열거 형 값을 초기화 할 수 없습니다.

함수에서 초기화 된 C ++ 배열은 main에서 액세스 할 수 없습니다.

소품에서 상태를 초기화 할 수 없습니다.

Go에서 if 구조를 초기화 할 수 없습니다.

Firebase에서 FirebaseThreadManagers 오류를 초기화 할 수 없습니다.

초기화 목록에서 catch할 수 없습니다.

Xcode Playgrounds에서 UICollectionView를 초기화 할 수 없습니다.

Quartz dot net에서 StdSchedulerFactory를 초기화 할 수 없습니다.

Google지도에서 Swift를 초기화 할 수 없습니다.

모든 것을 시도했지만 C에서 배열 카운터를 초기화 할 수 없습니다.

C #의 PortableDeviceManagerClass를 초기화 할 수 없습니다.

초기화 후 DataGrid에 행을 추가 할 수 없습니다.

오류 C2440 : '초기화 중': 다음에서 변환 할 수 없습니다.

C ++에서 직접 목록 초기화를 반환 할 수 없습니까?

오류 C2440 : '초기화 중': 'CTable'에서 'CTable'로 변환 할 수 없습니다.

링커 오류로 인해 C ++에서 TA-LIB를 초기화 할 수 없습니다.

C : void * 유형의 rvalue로 변수를 초기화 할 수 없습니다.

초기화 중에 MobileFirst Server에 연결할 수 없습니다.

초기화 전에 'variableName'에 액세스 할 수 없습니다.

초기화 전에 'X'에 액세스 할 수 없습니다.

초기화 전에 'actionCreator'에 액세스할 수 없습니다.

ReferenceError: 초기화 전에 ' '에 액세스할 수 없습니다.

classpath:wsdl에서 기본 wsdl을 초기화할 수 없습니다.

AJAX 응답에서 DataTable을 다시 초기화할 수 없습니다.