removed not automatically deducable template parameters from methods templates (possible GCC compilation error).

[SVN r80788]
This commit is contained in:
Adam Wulkiewicz
2012-09-30 17:29:00 +00:00
parent 80bfe0ae01
commit 4232b39920
4 changed files with 31 additions and 39 deletions

View File

@@ -190,11 +190,11 @@ struct allocators<Allocator, Value, Parameters, Box, node_d_mem_dynamic_tag>
// create_node_impl
template <typename Node>
struct create_node_poly
template <typename BaseNode, typename Node>
struct create_dynamic_node
{
template <typename RetNode, typename AllocNode, typename AllocElems>
static inline RetNode * apply(AllocNode & alloc_node, AllocElems & alloc_elems)
template <typename AllocNode, typename AllocElems>
static inline BaseNode * apply(AllocNode & alloc_node, AllocElems & alloc_elems)
{
Node * p = alloc_node.allocate(1);
@@ -237,14 +237,13 @@ struct create_node<
dynamic_internal_node<Value, Parameters, Box, Allocators, Tag>
>
{
static inline typename node<Value, Parameters, Box, Allocators, Tag>::type *
static inline dynamic_node<Value, Parameters, Box, Allocators, Tag> *
apply(Allocators & allocators)
{
return create_node_poly<
return create_dynamic_node<
dynamic_node<Value, Parameters, Box, Allocators, Tag>,
dynamic_internal_node<Value, Parameters, Box, Allocators, Tag>
>::template apply<
typename node<Value, Parameters, Box, Allocators, Tag>::type
>(allocators.internal_node_allocator, allocators.internal_node_elements_allocator);
>::apply(allocators.internal_node_allocator, allocators.internal_node_elements_allocator);
}
};
@@ -254,14 +253,13 @@ struct create_node<
dynamic_leaf<Value, Parameters, Box, Allocators, Tag>
>
{
static inline typename node<Value, Parameters, Box, Allocators, Tag>::type *
static inline dynamic_node<Value, Parameters, Box, Allocators, Tag> *
apply(Allocators & allocators)
{
return create_node_poly<
return create_dynamic_node<
dynamic_node<Value, Parameters, Box, Allocators, Tag>,
dynamic_leaf<Value, Parameters, Box, Allocators, Tag>
>::template apply<
typename node<Value, Parameters, Box, Allocators, Tag>::type
>(allocators.leaf_allocator, allocators.leaf_elements_allocator);
>::template apply(allocators.leaf_allocator, allocators.leaf_elements_allocator);
}
};
@@ -273,7 +271,7 @@ struct destroy_node<
dynamic_internal_node<Value, Parameters, Box, Allocators, Tag>
>
{
static inline void apply(Allocators & allocators, typename node<Value, Parameters, Box, Allocators, Tag>::type * n)
static inline void apply(Allocators & allocators, dynamic_node<Value, Parameters, Box, Allocators, Tag> * n)
{
destroy_node_poly<
dynamic_internal_node<Value, Parameters, Box, Allocators, Tag>
@@ -287,7 +285,7 @@ struct destroy_node<
dynamic_leaf<Value, Parameters, Box, Allocators, Tag>
>
{
static inline void apply(Allocators & allocators, typename node<Value, Parameters, Box, Allocators, Tag>::type * n)
static inline void apply(Allocators & allocators, dynamic_node<Value, Parameters, Box, Allocators, Tag> * n)
{
destroy_node_poly<
dynamic_leaf<Value, Parameters, Box, Allocators, Tag>

View File

@@ -122,14 +122,13 @@ struct create_node<
dynamic_internal_node<Value, Parameters, Box, Allocators, node_d_mem_static_tag>
>
{
static inline typename node<Value, Parameters, Box, Allocators, node_d_mem_static_tag>::type *
static inline dynamic_node<Value, Parameters, Box, Allocators, node_d_mem_static_tag> *
apply(Allocators & allocators)
{
return create_node_poly<
return create_dynamic_node<
dynamic_node<Value, Parameters, Box, Allocators, node_d_mem_static_tag>,
dynamic_internal_node<Value, Parameters, Box, Allocators, node_d_mem_static_tag>
>::template apply<
typename node<Value, Parameters, Box, Allocators, node_d_mem_static_tag>::type
>(allocators.internal_node_allocator, allocators.internal_node_allocator);
>::template apply(allocators.internal_node_allocator, allocators.internal_node_allocator);
}
};
@@ -142,11 +141,10 @@ struct create_node<
static inline typename node<Value, Parameters, Box, Allocators, node_d_mem_static_tag>::type *
apply(Allocators & allocators)
{
return create_node_poly<
return create_dynamic_node<
dynamic_node<Value, Parameters, Box, Allocators, node_d_mem_static_tag>,
dynamic_leaf<Value, Parameters, Box, Allocators, node_d_mem_static_tag>
>::template apply<
typename node<Value, Parameters, Box, Allocators, node_d_mem_static_tag>::type
>(allocators.leaf_allocator, allocators.leaf_allocator);
>::template apply(allocators.leaf_allocator, allocators.leaf_allocator);
}
};

View File

@@ -153,10 +153,10 @@ struct allocators<Allocator, Value, Parameters, Box, node_s_mem_dynamic_tag>
// create_node_variant
template <typename Node>
template <typename RetNode, typename Node>
struct create_node_variant
{
template <typename RetNode, typename AllocNode, typename AllocElems>
template <typename AllocNode, typename AllocElems>
static inline RetNode * apply(AllocNode & alloc_node, AllocElems & alloc_elems)
{
RetNode * p = alloc_node.allocate(1);
@@ -203,10 +203,9 @@ struct create_node<
apply(Allocators & allocators)
{
return create_node_variant<
typename node<Value, Parameters, Box, Allocators, Tag>::type,
static_internal_node<Value, Parameters, Box, Allocators, Tag>
>::template apply<
typename node<Value, Parameters, Box, Allocators, Tag>::type
>(allocators.node_allocator, allocators.internal_node_elements_allocator);
>::template apply(allocators.node_allocator, allocators.internal_node_elements_allocator);
}
};
@@ -220,10 +219,9 @@ struct create_node<
apply(Allocators & allocators)
{
return create_node_variant<
typename node<Value, Parameters, Box, Allocators, Tag>::type,
static_leaf<Value, Parameters, Box, Allocators, Tag>
>::template apply<
typename node<Value, Parameters, Box, Allocators, Tag>::type
>(allocators.node_allocator, allocators.leaf_elements_allocator);
>::template apply(allocators.node_allocator, allocators.leaf_elements_allocator);
}
};

View File

@@ -121,10 +121,9 @@ struct create_node<
apply(Allocators & allocators)
{
return create_node_variant<
typename node<Value, Parameters, Box, Allocators, node_s_mem_static_tag>::type,
static_internal_node<Value, Parameters, Box, Allocators, node_s_mem_static_tag>
>::template apply<
typename node<Value, Parameters, Box, Allocators, node_s_mem_static_tag>::type
>(allocators.node_allocator, allocators.node_allocator);
>::template apply(allocators.node_allocator, allocators.node_allocator);
}
};
@@ -138,10 +137,9 @@ struct create_node<
apply(Allocators & allocators)
{
return create_node_variant<
typename node<Value, Parameters, Box, Allocators, node_s_mem_static_tag>::type,
static_leaf<Value, Parameters, Box, Allocators, node_s_mem_static_tag>
>::template apply<
typename node<Value, Parameters, Box, Allocators, node_s_mem_static_tag>::type
>(allocators.node_allocator, allocators.node_allocator);
>::template apply(allocators.node_allocator, allocators.node_allocator);
}
};