Портирую код с винды на линукс.
struct CDestroyer
{
...
template <typename T>
struct CHelper4
{
template <bool a>
static void delete_data(T& data)
{
CHelper2<T>::delete_data<object_type_traits::is_pointer<T>::value>(data);
}
template <> // explicit specialization in non-namespace scope ‘struct CDestroyer::CHelper4<T>’
static void delete_data<true>(T& data) //error: template-id ‘delete_data<true>’ in declaration of primary template
{
CHelper3::delete_data(data);
}
};
template <typename T>
static void delete_data(T& data)
{
CHelper4<T>::delete_data<object_type_traits::is_stl_container<T>::value>(data);
}
};
Вопрос: как это обойти?
Я в кресты не умею, только в си, так что при ответе пожалуйста учитывайте. Ну или ткните носом в доки, каким образом можно делать условный выбор шаблонов в целом.