42 #ifndef ENGINE_NODEWIRING_CONFIG_H 43 #define ENGINE_NODEWIRING_CONFIG_H 62 using lib::meta::CONFIG_FLAGS_MAX;
101 template<
template<
class CONF>
class Factory
107 typedef std::function<FUNC> FacFunction;
116 FacFunction (static_cast<FAC&> (*
this))
122 typedef std::map<IxID, PFunc> ConfigTable;
132 ConfigTable& factories_;
147 PFunc pFactory (
new FactoryHolder<Factory<CONF>> (ctor_param_));
148 factories_[code] = pFactory;
156 template<
class CONFS>
160 factory_ctor_param );
169 if (contains (possibleConfig_, configFlags))
170 return *possibleConfig_[configFlags];
173 +std::bitset<CONFIG_FLAGS_MAX>(configFlags).to_string());
203 template<
template<
class>
class _CandidateTemplate_>
210 typedef _CandidateTemplate_<X> Instance;
213 static Yes_t check(
typename U::is_defined *);
215 static No_t check(...);
218 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