对';min(uint8,int)和x27; 我试图用GCC编译一些C++,我收到的错误是: /usr/share/arduino/libraries/i2cdevlib/Arduino/MPU9150/MPU9150_9Axis_MotionApps41.h: In member function 'uint8_t MPU9150::dmpInitialize()': /usr/share/arduino/libraries/i2cdevlib/Arduino/MPU9150/MPU9150_9Axis_MotionApps41.h:605:56: error: no matching function for call to 'min(uint8_t&, int)' getFIFOBytes(fifoBuffer, min(fifoCount, 128)); // safeguard only 128 bytes ^

对';min(uint8,int)和x27; 我试图用GCC编译一些C++,我收到的错误是: /usr/share/arduino/libraries/i2cdevlib/Arduino/MPU9150/MPU9150_9Axis_MotionApps41.h: In member function 'uint8_t MPU9150::dmpInitialize()': /usr/share/arduino/libraries/i2cdevlib/Arduino/MPU9150/MPU9150_9Axis_MotionApps41.h:605:56: error: no matching function for call to 'min(uint8_t&, int)' getFIFOBytes(fifoBuffer, min(fifoCount, 128)); // safeguard only 128 bytes ^,c++,C++,为什么没有定义min(uint8\u t&,int)?这不是一个标准的数学函数吗 假设我在某个地方缺少include或namespace声明,并且不应该自己定义此函数,对吗?传递给std::min的参数不同:一个是uint8\t,另一个是int std::min的功能类型如下: template< class T > const T& min( const T& a, const T& b ); 你的错误信息说明了一切 错误:调用“min(uint8\u

为什么没有定义
min(uint8\u t&,int)
?这不是一个标准的数学函数吗


假设我在某个地方缺少include或namespace声明,并且不应该自己定义此函数,对吗?

传递给
std::min
的参数不同:一个是
uint8\t
,另一个是
int

std::min
的功能类型如下:

template< class T > 
const T& min( const T& a, const T& b );

你的错误信息说明了一切

错误:调用“min(uint8\u t&,int)”时没有匹配的函数

编译器无法解析为正确的专门化,因为参数的类型不一致(匹配)

  • uint8\u t
    参数
    fifoCount
    静态上溯到
    int
    中的std::min(静态上溯(fifoCount),128)
  • 或者,明确指定要专门化的类型
    std::min(fifoCount,128)
  • std::min<int>(fifoCount, 128);