51 #ifndef ENGINE_NODEWIRING_CONFIG_H 52 #define ENGINE_NODEWIRING_CONFIG_H 71 using lib::meta::CONFIG_FLAGS_MAX;
110 template<
template<
class CONF>
class Factory
116 typedef std::function<FUNC> FacFunction;
125 FacFunction (static_cast<FAC&> (*
this))
131 typedef std::map<IxID, PFunc> ConfigTable;
141 ConfigTable& factories_;
156 PFunc pFactory (
new FactoryHolder<Factory<CONF>> (ctor_param_));
157 factories_[code] = pFactory;
165 template<
class CONFS>
169 factory_ctor_param );
178 if (contains (possibleConfig_, configFlags))
179 return *possibleConfig_[configFlags];
182 +std::bitset<CONFIG_FLAGS_MAX>(configFlags).to_string());
212 template<
template<
class>
class _CandidateTemplate_>
219 typedef _CandidateTemplate_<X> Instance;
222 static Yes_t check(
typename U::is_defined *);
224 static No_t check(...);
227 static const bool value = (
sizeof(Yes_t)==
sizeof(check<Instance>(0)));
Helper template for semi-automatic detection if instantiation is possible.
Under some circumstances it is necessary to assemble functionality out of elementary building blocks...
Steam-Layer implementation namespace root.
FacFunction & operator[](IxID configFlags)
Derived specific exceptions within Lumiera's exception hierarchy.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...
Helper: a visitor usable with FlagInfo.
Helper for fabricating ProcNode Wiring configurations.
ConfigTable possibleConfig_
Table of factories.
bool contains(SEQ const &cont, typename SEQ::const_reference val)
shortcut for brute-force containment test in any sequential container