Default values in config does not compile under gcc and clang

This commit is contained in:
tamasmeszaros 2018-11-19 13:13:05 +01:00
parent 35bbe89251
commit a914e7de2d

View file

@ -274,12 +274,12 @@ protected:
m_defaults = defaults; m_defaults = defaults;
m_keys.clear(); m_keys.clear();
m_keys.reserve(m_map_name_to_offset.size()); m_keys.reserve(m_map_name_to_offset.size());
for (const auto &kvp : defs->options) { for (const auto &kvp : defs->options) {
// Find the option given the option name kvp.first by an offset from (char*)m_defaults. // Find the option given the option name kvp.first by an offset from (char*)m_defaults.
ConfigOption *opt = this->optptr(kvp.first, m_defaults); ConfigOption *opt = this->optptr(kvp.first, m_defaults);
if (opt == nullptr) if (opt == nullptr)
// This option is not defined by the ConfigBase of type T. // This option is not defined by the ConfigBase of type T.
continue; continue;
m_keys.emplace_back(kvp.first); m_keys.emplace_back(kvp.first);
const ConfigOptionDef *def = defs->get(kvp.first); const ConfigOptionDef *def = defs->get(kvp.first);
assert(def != nullptr); assert(def != nullptr);
@ -880,7 +880,7 @@ class FullPrintConfig :
public HostConfig public HostConfig
{ {
STATIC_PRINT_CONFIG_CACHE_DERIVED(FullPrintConfig) STATIC_PRINT_CONFIG_CACHE_DERIVED(FullPrintConfig)
FullPrintConfig() : PrintObjectConfig(0), PrintRegionConfig(0), PrintConfig(0), HostConfig(0) { initialize_cache(); *this = s_cache_FullPrintConfig.defaults(); } FullPrintConfig() : PrintObjectConfig(0), PrintRegionConfig(0), PrintConfig(0), HostConfig(0) { initialize_cache(); *this = s_cache_FullPrintConfig.defaults(); }
public: public:
// Validate the FullPrintConfig. Returns an empty string on success, otherwise an error message is returned. // Validate the FullPrintConfig. Returns an empty string on success, otherwise an error message is returned.
@ -905,47 +905,47 @@ public:
ConfigOptionFloat layer_height; ConfigOptionFloat layer_height;
// Radius in mm of the pointing side of the head. // Radius in mm of the pointing side of the head.
ConfigOptionFloat support_head_front_radius = 0.2; ConfigOptionFloat support_head_front_radius /*= 0.2*/;
// How much the pinhead has to penetrate the model surface // How much the pinhead has to penetrate the model surface
ConfigOptionFloat support_head_penetraiton = 0.2; ConfigOptionFloat support_head_penetraiton /*= 0.2*/;
// Radius of the back side of the 3d arrow. TODO: consider renaming this // Radius of the back side of the 3d arrow. TODO: consider renaming this
// to actual pillar radius, because that's what it boils down to. // to actual pillar radius, because that's what it boils down to.
ConfigOptionFloat support_head_back_radius = 0.5; ConfigOptionFloat support_head_back_radius /*= 0.5*/;
// Width in mm from the back sphere center to the front sphere center. // Width in mm from the back sphere center to the front sphere center.
ConfigOptionFloat support_head_width = 1.0; ConfigOptionFloat support_head_width /*= 1.0*/;
// Radius in mm of the support pillars. // Radius in mm of the support pillars.
// TODO: This parameter is questionable. The pillar radius will be dynamic in // TODO: This parameter is questionable. The pillar radius will be dynamic in
// nature. Merged pillars will have an increased thickness. This parameter // nature. Merged pillars will have an increased thickness. This parameter
// may serve as the maximum radius, or maybe an increase when two are merged // may serve as the maximum radius, or maybe an increase when two are merged
// The default radius will be derived from head_back_radius_mm // The default radius will be derived from head_back_radius_mm
ConfigOptionFloat support_pillar_radius = 0.8; ConfigOptionFloat support_pillar_radius /*= 0.8*/;
// Radius in mm of the pillar base. // Radius in mm of the pillar base.
ConfigOptionFloat support_base_radius = 2.0; ConfigOptionFloat support_base_radius /*= 2.0*/;
// The height of the pillar base cone in mm. // The height of the pillar base cone in mm.
ConfigOptionFloat support_base_height = 1.0; ConfigOptionFloat support_base_height /*= 1.0*/;
// The default angle for connecting support sticks and junctions. // The default angle for connecting support sticks and junctions.
ConfigOptionFloat support_critical_angle = 45; ConfigOptionFloat support_critical_angle /*= 45*/;
// The max length of a bridge in mm // The max length of a bridge in mm
ConfigOptionFloat support_max_bridge_length = 15.0; ConfigOptionFloat support_max_bridge_length /*= 15.0*/;
// The elevation in Z direction upwards. This is the space between the pad // The elevation in Z direction upwards. This is the space between the pad
// and the model object's bounding box bottom. Units in mm. // and the model object's bounding box bottom. Units in mm.
ConfigOptionFloat support_object_elevation = 5.0; ConfigOptionFloat support_object_elevation /*= 5.0*/;
// Now for the base pool (pad) ///////////////////////////////////////////// // Now for the base pool (pad) /////////////////////////////////////////////
ConfigOptionFloat pad_wall_thickness= 2; ConfigOptionFloat pad_wall_thickness /*= 2*/;
ConfigOptionFloat pad_wall_height = 5; ConfigOptionFloat pad_wall_height /*= 5*/;
ConfigOptionFloat pad_max_merge_distance = 50; ConfigOptionFloat pad_max_merge_distance /*= 50*/;
ConfigOptionFloat pad_edge_radius = 1; ConfigOptionFloat pad_edge_radius /*= 1*/;
protected: protected:
void initialize(StaticCacheBase &cache, const char *base_ptr) void initialize(StaticCacheBase &cache, const char *base_ptr)
@ -1077,7 +1077,7 @@ public:
// Overrides ConfigBase::def(). Static configuration definition. Any value stored into this ConfigBase shall have its definition here. // Overrides ConfigBase::def(). Static configuration definition. Any value stored into this ConfigBase shall have its definition here.
const ConfigDef* def() const override { return &cli_config_def; } const ConfigDef* def() const override { return &cli_config_def; }
t_config_option_keys keys() const override { return cli_config_def.keys(); } t_config_option_keys keys() const override { return cli_config_def.keys(); }
ConfigOption* optptr(const t_config_option_key &opt_key, bool create = false) override ConfigOption* optptr(const t_config_option_key &opt_key, bool create = false) override
{ {