//========================================================
// Static Data Members
//========================================================
+% for knob in knobs:
+% if knob[1]['type'] == 'std::string':
+${knob[1]['type']} GlobalKnobs::Knob_${knob[0]}::m_default = "${repr(knob[1]['default'])[1:-1]}";
+% else:
+${knob[1]['type']} GlobalKnobs::Knob_${knob[0]}::m_default = ${knob[1]['default']};
+% endif
+% endfor
GlobalKnobs g_GlobalKnobs;
//========================================================
T m_Value;
};
-#define DEFINE_KNOB(_name, _type, _default) \\
+#define DEFINE_KNOB(_name, _type) \\
struct Knob_##_name : Knob<_type> \\
static const char* Name() { return "KNOB_" #_name; } \\
- static _type DefaultValue() { return (_default); } \\
+ static _type DefaultValue() { return (m_default); } \\
+
+ private: \\
+
+ static _type m_default; \\
} _name;
% endfor
% endif
//
- % if knob[1]['type'] == 'std::string':
- DEFINE_KNOB(${knob[0]}, ${knob[1]['type']}, "${repr(knob[1]['default'])[1:-1]}");
- % else:
- DEFINE_KNOB(${knob[0]}, ${knob[1]['type']}, ${knob[1]['default']});
- % endif
+ DEFINE_KNOB(${knob[0]}, ${knob[1]['type']});
% endfor