diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2016-10-06 10:41:18 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2016-10-06 10:43:11 +0900 |
commit | f763a99a501650eff2c60288aa6f10ef916d769e (patch) | |
tree | 02af7e13f9a38c888ebf340fe764cbe7dae99da9 /boost/intrusive/detail/generic_hook.hpp | |
parent | 5cde13f21d36c7224b0e13d11c4b49379ae5210d (diff) | |
download | boost-f763a99a501650eff2c60288aa6f10ef916d769e.tar.gz boost-f763a99a501650eff2c60288aa6f10ef916d769e.tar.bz2 boost-f763a99a501650eff2c60288aa6f10ef916d769e.zip |
Imported Upstream version 1.62.0upstream/1.62.0
Change-Id: I9d4c1ddb7b7d8f0069217ecc582700f9fda6dd4c
Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'boost/intrusive/detail/generic_hook.hpp')
-rw-r--r-- | boost/intrusive/detail/generic_hook.hpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/boost/intrusive/detail/generic_hook.hpp b/boost/intrusive/detail/generic_hook.hpp index b57a12b458..13421b8805 100644 --- a/boost/intrusive/detail/generic_hook.hpp +++ b/boost/intrusive/detail/generic_hook.hpp @@ -26,6 +26,7 @@ #include <boost/intrusive/detail/mpl.hpp> #include <boost/intrusive/detail/assert.hpp> #include <boost/intrusive/detail/node_holder.hpp> +#include <boost/intrusive/detail/algo_type.hpp> #include <boost/static_assert.hpp> namespace boost { @@ -120,7 +121,8 @@ struct hooktags_impl /// @endcond template - < class NodeAlgorithms + < boost::intrusive::algo_types Algo + , class NodeTraits , class Tag , link_mode_type LinkMode , base_hook_type BaseHookType @@ -135,20 +137,20 @@ class generic_hook //from the hook. : public detail::if_c < detail::is_same<Tag, member_tag>::value - , typename NodeAlgorithms::node - , node_holder<typename NodeAlgorithms::node, Tag, BaseHookType> + , typename NodeTraits::node + , node_holder<typename NodeTraits::node, Tag, BaseHookType> >::type //If this is the a default-tagged base hook derive from a class that //will define an special internal typedef. Containers will be able to detect this //special typedef and obtain generic_hook's internal types in order to deduce //value_traits for this hook. , public hook_tags_definer - < generic_hook<NodeAlgorithms, Tag, LinkMode, BaseHookType> - , detail::is_same<Tag, dft_tag>::value*BaseHookType> + < generic_hook<Algo, NodeTraits, Tag, LinkMode, BaseHookType> + , detail::is_same<Tag, dft_tag>::value ? BaseHookType : NoBaseHookId> /// @endcond { /// @cond - typedef NodeAlgorithms node_algorithms; + typedef typename get_algo<Algo, NodeTraits>::type node_algorithms; typedef typename node_algorithms::node node; typedef typename node_algorithms::node_ptr node_ptr; typedef typename node_algorithms::const_node_ptr const_node_ptr; @@ -156,7 +158,7 @@ class generic_hook public: typedef hooktags_impl - < typename NodeAlgorithms::node_traits + < NodeTraits , Tag, LinkMode, BaseHookType> hooktags; node_ptr this_ptr() |