Контент приложения - это переход при запуске приложения

Оберните параметр (ы) в своем классе как constexprs. Эффективно это похоже на черту, поскольку она параметризует класс с набором поплавков.

class MyParameters{
    public:
        static constexpr float Kd =1.0f;
        static constexpr float Ki =1.0f;
        static constexpr float Kp =1.0f;
};

, а затем создает шаблон, в котором используется тип класса в качестве параметра

  template <typename NUM, typename TUNING_PARAMS >
  class PidController {

      // define short hand constants for the PID tuning parameters
      static constexpr NUM Kp = TUNING_PARAMS::Kp;
      static constexpr NUM Ki = TUNING_PARAMS::Ki;
      static constexpr NUM Kd = TUNING_PARAMS::Kd;

      .... code to actually do something ...
};

а затем использовать его так ...

int main (){
    PidController<float, MyParameters> controller;
    ...
    ...
}

Это позволяет компилятору гарантировать, что для каждого экземпляра шаблона с одним и тем же пакетом параметров создается только один экземпляр кода. Это касается всех проблем, и вы можете использовать float и doubles как constexpr внутри шаблонного класса.

0
задан Chris Mancini 16 January 2019 в 19:00
поделиться