error: 'size_t' in namespace 'std' does not name a type

I am trying to compile an example sketch. I was compiling it fine last week. In looking through github and here it seems that Arduino 1.8.13 and/or ArduinoAVR Boards 1.8.3 have been implicated. I downgraded them to the previous versions. Here is the error: (The file is in the next post.)

Arduino: 1.8.12 (Windows 10), Board: "Arduino Uno"


Compiling sketch...
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10812 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard" "-IC:\\Users\\colin_000\\Documents\\Arduino\\libraries\\ams5915-arduino-main\\src" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries\\Wire\\src" "C:\\Users\\COLIN_~1\\AppData\\Local\\Temp\\arduino_build_945988\\sketch\\Pressure_Sensor_Sample.ino.cpp" -o "C:\\Users\\COLIN_~1\\AppData\\Local\\Temp\\arduino_build_945988\\sketch\\Pressure_Sensor_Sample.ino.cpp.o"
In file included from C:\Users\colin_000\Documents\Arduino\Pressure_Sensor_Sample\Pressure_Sensor_Sample.ino:23:0:

C:\Users\colin_000\Documents\Arduino\libraries\ams5915-arduino-main\src/ams5915.h:69:25: error: 'size_t' in namespace 'std' does not name a type

   static constexpr std::size_t MAX_TRIES_ = 10;

                         ^~~~~~

Using library ams5915-arduino-main at version 2.0.1 in folder: C:\Users\colin_000\Documents\Arduino\libraries\ams5915-arduino-main 
Using library Wire at version 1.0 in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire 
exit status 1
Error compiling for board Arduino Uno.

Here is the file that throws an error. It's like it is not using Arduino.h at all? I have not changed the file since it compiled last week.

#ifndef INCLUDE_AMS5915_AMS5915_H_
#define INCLUDE_AMS5915_AMS5915_H_

#include "Arduino.h"
#include "Wire.h"

class Ams5915 {
 public:
  enum Transducer {
    AMS5915_0005_D,
    AMS5915_0010_D,
    AMS5915_0005_D_B,
    AMS5915_0010_D_B,
    AMS5915_0020_D,
    AMS5915_0050_D,
    AMS5915_0100_D,
    AMS5915_0020_D_B,
    AMS5915_0050_D_B,
    AMS5915_0100_D_B,
    AMS5915_0200_D,
    AMS5915_0350_D,
    AMS5915_1000_D,
    AMS5915_2000_D,
    AMS5915_4000_D,
    AMS5915_7000_D,
    AMS5915_10000_D,
    AMS5915_0200_D_B,
    AMS5915_0350_D_B,
    AMS5915_1000_D_B,
    AMS5915_1000_A,
    AMS5915_1200_B};
  Ams5915(TwoWire *bus, uint8_t addr, Transducer type);
  bool Begin();
  bool Read();
  inline float pressure_pa() const {return pres_pa_;}
  inline float die_temperature_c() const {return temp_c_;}

 private:
  /* Communication interface */
  TwoWire *bus_;
  uint8_t addr_;
  static constexpr uint32_t I2C_CLOCK_ = 400000;
  static constexpr std::size_t MAX_TRIES_ = 10;
  /* Min and max pressure, millibar */
  float min_pres_mbar_, max_pres_mbar_, pres_range_mbar_;
  /* Digital output at min and max pressure */
  static constexpr uint16_t DIG_OUT_PMIN_ = 1638;
  static constexpr uint16_t DIG_OUT_PMAX_ = 14745;
  static constexpr float DIG_OUT_PRANGE_ =
    static_cast<float>(DIG_OUT_PMAX_ - DIG_OUT_PMIN_);
  /* Maximum temperature */
  static constexpr float MAX_TEMPERATURE_ = 85.0f;
  /* Data */
  float pres_pa_, temp_c_;
};

#endif  // INCLUDE_AMS5915_AMS5915_H_

Okay, I deleted the entire library and reinstalled it. Now it is working. Perhaps in reading I accidently modified it??

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.