diff --git a/include/ponder/detail/functionimpl.hpp b/include/ponder/detail/functionimpl.hpp index 7d3fd075..58e4fbe6 100644 --- a/include/ponder/detail/functionimpl.hpp +++ b/include/ponder/detail/functionimpl.hpp @@ -140,7 +140,7 @@ class FunctionImpl : public Function template void processUses(IdRef name, F function) { - typedef typename std::tuple_element::type Processor; + typedef typename std::tuple_element::type Processor; std::get(m_userData) = Processor::template perFunction(name, function); diff --git a/include/ponder/uses/uses.hpp b/include/ponder/uses/uses.hpp index 6d4859ea..e47256d1 100644 --- a/include/ponder/uses/uses.hpp +++ b/include/ponder/uses/uses.hpp @@ -43,7 +43,7 @@ namespace ponder { namespace uses { /** - * The "uses" modules are a way for Uses of the compile-time types to store + * The "uses" are a way for users of the compile-time types to store * information. For example, this may be templated code that uses the types only * available during compilation. These may then be used at runtime. The idea is * to decouple modules from the metaclass data to avoid complexity. @@ -51,7 +51,7 @@ namespace uses { * Each module supplies (pseudo-code): * * \code - * struct Module_name { + * struct Use_name { * static module_ns::detail::PerConstructor_t* perConstructor(IdRef name, C constructor) * static module_ns::detail::PerFunc_t* perFunction(IdRef name, F function) * } @@ -64,7 +64,7 @@ namespace uses { * This module provides runtime behaviour like creation of UserObjects and calling * functions */ -struct RuntimeModule +struct RuntimeUse { /// Factory for per-function runtime data template @@ -80,7 +80,7 @@ struct RuntimeModule * This module provides Lua support. */ #if PONDER_USING_LUA -struct LuaModule +struct LuaUse { /// Factory for per-function runtime data template @@ -99,13 +99,15 @@ struct LuaModule struct Uses { enum { - eRuntimeModule, ///< Runtime module enumeration - PONDER_IF_LUA(eLuaModule) ///< Lua module enumeration + eRuntimeModule, ///< Runtime module enumeration + PONDER_IF_LUA(eLuaModule,) ///< Lua module enumeration + eUseCount }; - /// Modules we would like to use. - typedef std::tuple Modules; + /// Metadata uses we are using. + typedef std::tuple Users; /// Type that stores the per-function uses data typedef std::tuple< @@ -118,6 +120,9 @@ struct Uses // PerFunc_t* std::get(getUsesData()); }; +static_assert(Uses::eUseCount==std::tuple_size::value, "Size mismatch"); +static_assert(Uses::eUseCount==std::tuple_size::value, "Size mismatch"); + } // namespace uses } // namespace ponder