Define IOX_BUILDER_PARAMETER

Define Documentation

IOX_BUILDER_PARAMETER(type, name, defaultValue)

Macro which generates a setter method useful for a builder pattern.

Parameters:
  • type[in] the data type of the parameter

  • name[in] the name of the parameter

  • defaultValue[in] the default value of the parameter

    class MyBuilder {
      IOX_BUILDER_PARAMETER(TypeA, NameB, ValueC)
      // START generates the following code
      public:
        decltype(auto) NameB(TypeA const& value) &&
        {
            m_NameB = value;
            return std::move(*this);
        }
    
        decltype(auto) NameB(TypeA&& value) &&
        {
            m_NameB = std::move(value);
            return std::move(*this);
        }
    
      private:
        TypeA m_NameB = ValueC;
      // END
    };