如何以模板方式存储数据结构?

时间:2015-04-04 09:25:37

标签: c++ templates exception-handling c++14

我有一个模板化结构,我希望将其作为模板参数2传递给函数 - allocator和deallocator。有没有什么方法可以将它们组织成类似模板的结构,这样它们就不会有不匹配的机会?

我不想使用对结构的常规引用,因为那时会有很多不同的实例,但我想为每对函数提供一个。

示例:

template<bool bNoExcept>
struct type_object_factory_memory_mng_funcs
{
     void *(&refAllocFunction)(std::size_t) noexcept(bNoExcept);

     std::conditional<bNoExcept, bool, void> (&refDeAllocFunction)(void *) noexcept(bNoExcept);
};

template<typename Type, bool bNoExcept, type_object_factory_memory_mng_funcs<bNoExcept> &&refMemFuncs>
struct type_object_factory ; //here instance for each rvalue object passed will be created

有更好的方法吗?

我不想用这个:

template<typename Type, bool bNoExcept, void *(&refAllocFunction)(std::size_t) noexcept(bNoExcept), std::conditional<bNoExcept, bool, void> (&refDeAllocFunction)(void *) noexcept(bNoExcept)>
struct type_object_factory ;
通过这种方式,Becaus很有可能会传递不匹配的功能。任何想法如何克服这个?

我还希望为可能抛出的每对函数隐式定义异常的特定类型。

0 个答案:

没有答案