2012-11-09 2 views
0

변수가 boost::any*입니다. 내 요구 사항은 다음과 같습니다.'double *'을 'boost :: any *'로 변환

int, double 또는 다른 데이터 유형일 수있는 값 목록이있는 항목을 할당합니다. 그러나 주어진 시간에 데이터 유형은 고유 할 것입니다.

문제 : 나 상품 [지수 = 값을 이용하여 할당 할 수있는 단일 값

; 하지만 항목 = 값; 여기서 values는 자동으로 캐스팅 할 수없는 double 배열입니다. 또한 내가 사용하는 경우

나는 'boost :: bad_any_cast'를받습니다 : 'boost :: any_cast`를 사용하여 변환에 실패했습니다.

두 가지 배열을 boost::any 배열에 캐스트 할 수있는 방법에 대한 힌트가 있습니다.

+0

더 많은 업데이트를 사용하는 경우 items = reinterpret_cast (값); 프로그램이 실행되고 값을 할당 할 수도 있습니다. boost :: any_cast (this-> entries [_index]) 부스트에서 잘못된 캐스트 오류가 발생합니다. 그래서 나는 값을 되돌릴 수 없다. – Pinaki

답변

1

그냥 작동하지 않습니다. double[]에서는 복식이 연속적입니다. 두 개의 double 사이에 공간이 없습니다. 대략 boost::any[]에도 동일하게 적용됩니다. 두 개의 any 개체 사이에 공백이 없습니다. 그러나 인접한 boost::any<> 래퍼 내부에 저장된 두 개의 double 사이에 공간이 있습니다.

함수를 작성해야합니다.

+0

... 고맙습니다. – Pinaki