Quando ho eseguito le seguenti operazioni con avviso di bandiere ottenere una conversione del tipo di avviso.
#include <boost/multi_array.hpp>
void function (boost::multi_array<unsigned char, 2> matrix) {
int nrows = matrix.shape()[0];
int ncols = matrix.shape()[1];
}
Vedere il seguente messaggio di avviso. Questo significa che io sono implicitamente la conversione di un 'long unsigned int' in una ' normale 'int'?
Se è così, credo che questo è ciò che voglio (è necessario eseguire calcoli con nrows, ncols in seguito), e quindi come faccio a fare la conversione esplicita?
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];