2017-03-15 3 views
1

나는 C++ 클래스와 레거시 C 코드에서 중개자 역할을하는 클래스를 작성하고 있습니다. 많은 코드를 단순화하기 위해 boost_array를 사용했습니다. 이 mult_array 같은 선언 :부스트 multi_array를 기본 배열 유형으로 변환

using Array = boost::multi_array<float,2> 

그러나, 나는 내 multi_array이입니다

void function(float param[ROWS][COLS]); 

유사한 서명이 기존 기능에 내 multi_array를 전달해야 문제로 실행 한 size ROWS 및 COLS,하지만 mutli_array 배열로 변환하는 쉬운 방법을 모르겠습니다. 그렇게 할 방법이 있습니까? boost::multi_array의 저장 순서가 well defined 때문에

+0

참조 : http://stackoverflow.com/a/23649263/3962537 –

답변

1

, 실제로 그렇게 안전하게 호출 할 수 있습니다 :

function((float (*)[COLS])array.data()); 

c_storage_order은 기본이며, 개체의 건설에 따라 다른 것을 사용하지 있는지 확인하십시오.