Quando eu execute o seguinte com aviso de sinalizadores de eu obter uma conversão de tipo de aviso.
#include <boost/multi_array.hpp>
void function (boost::multi_array<unsigned char, 2> matrix) {
int nrows = matrix.shape()[0];
int ncols = matrix.shape()[1];
}
Consulte a seguinte mensagem de aviso. Isso significa que eu estou, implicitamente, a conversão de um 'long unsigned int' regular 'int'?
Se for assim, eu acho que isso é o que eu quero (preciso executar cálculos com nrows, ncols depois), e então, como que eu iria fazer a conversão explícita?
image.cpp:93:32: warning: conversion to ‘int’ from ‘boost::const_multi_array_ref<float, 2ul, float*>::size_type {aka long unsigned int}’ may alter its value [-Wconversion]
int nrows = matrix.shape()[0];