Container para boost :: multi_array do mesmo tipo, mas com dimensão diferente
O que eu preciso é criar uma classe que possa conter boost :: multi_array do mesmo tipo, mas com dimensões diferentes
suponha que haja uma ou mais matrizes de Double
boost::multi_array<double, 2> array_2d; //2D array
boost::multi_array<double, 3> array_3d; //4D array
boost::multi_array<double, 4> array_4d; //5D array
etc...
Eu preciso de uma classe de contêiner que possa conter todos os tipos acima, capazes de deferir o tipo correto posteriormente, quando necessário
algo como
GenericArray<double> arr;
arr.IsEmpty() // check if it has valid ref
arr.assign(array_2d); //set reference to
volte a referência para a matriz usando algum tipo de lógica de modelo
try{
boost::multi_array<double, 2>& array_2d_ref = arr.get<2>
//OR
boost::multi_array<double, 2>& array_2d_ref = arr.get<multi_array<double, 2>>
// First one look cleaner tho
}catch (ArrayDimentinalityMismatch e){
}
No mesmo bloco de código
arr.assign(array_3d);
try{
boost::multi_array<double, 2>& array_3d_ref=arr.get<multi_array<double, 3>>
}catch (ArrayDimentinalityMismatch e){
}
Isso é possível usando modelos?