diff options
author | Murray Cumming <murrayc@murrayc.com> | 2016-04-19 13:39:48 +0200 |
---|---|---|
committer | Murray Cumming <murrayc@murrayc.com> | 2016-04-19 13:39:48 +0200 |
commit | 815cdcf2941b3a11178a2b335aa066d83be627bb (patch) | |
tree | 40f24fb9678204f828c13f7f125ce4e46200bb45 /sigc++/signal.h | |
parent | 180353986d101e367c26b3199c44c7b2e4c1e681 (diff) | |
download | sigc++-815cdcf2941b3a11178a2b335aa066d83be627bb.tar.gz |
Revert "Always use typename rather than class for template types."
This reverts commit 180353986d101e367c26b3199c44c7b2e4c1e681.
Because I misread https://stackoverflow.com/questions/213121/use-class-or-typename-for-template-parameters
class is _still_ needed for template template parameters in C++14,
though g++ and clang++ seem to support it anyway.
Diffstat (limited to 'sigc++/signal.h')
-rw-r--r-- | sigc++/signal.h | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/sigc++/signal.h b/sigc++/signal.h index 70e89ae..7a4fad5 100644 --- a/sigc++/signal.h +++ b/sigc++/signal.h @@ -160,7 +160,7 @@ struct slot_const_iterator * * @ingroup signal */ -template <typename T_slot> +template <class T_slot> struct slot_list { using slot_type = T_slot; @@ -249,7 +249,7 @@ namespace internal * the slot. The return value is buffered, so that in an expression * like @code a = (*i) * (*i); @endcode the slot is executed only once. */ -template <typename T_emitter, typename T_result = typename T_emitter::result_type> +template <class T_emitter, class T_result = typename T_emitter::result_type> struct slot_iterator_buf { using size_type = std::size_t; @@ -332,7 +332,7 @@ private: /** Template specialization of slot_iterator_buf for void return signals. */ -template <typename T_emitter> +template <class T_emitter> struct slot_iterator_buf<T_emitter, void> { using size_type = std::size_t; @@ -400,7 +400,7 @@ private: }; /** Reverse version of sigc::internal::slot_iterator_buf. */ -template <typename T_emitter, typename T_result = typename T_emitter::result_type> +template <class T_emitter, class T_result = typename T_emitter::result_type> struct slot_reverse_iterator_buf { using size_type = std::size_t; @@ -486,7 +486,7 @@ private: /** Template specialization of slot_reverse_iterator_buf for void return signals. */ -template <typename T_emitter> +template <class T_emitter> struct slot_reverse_iterator_buf<T_emitter, void> { using size_type = std::size_t; @@ -593,7 +593,7 @@ private: * emission when no accumulator is used, for example when the template * argument @e T_accumulator is @p void. */ -template <typename T_return, typename T_accumulator, typename... T_arg> +template <class T_return, class T_accumulator, class... T_arg> struct signal_emit { using self_type = signal_emit<T_return, T_accumulator, T_arg...>; @@ -675,7 +675,7 @@ private: * This template specialization implements an optimized emit() * function for the case that no accumulator is used. */ -template <typename T_return, typename... T_arg> +template <class T_return, class... T_arg> struct signal_emit<T_return, void, T_arg...> { private: @@ -781,7 +781,7 @@ public: * function for the case that no accumulator is used and the * return type is @p void. */ -template <typename... T_arg> +template <class... T_arg> struct signal_emit<void, void, T_arg...> { private: @@ -864,7 +864,7 @@ public: * * @ingroup signal */ -template <typename T_return, typename T_accumulator, typename... T_arg> +template <class T_return, class T_accumulator, class... T_arg> class signal_with_accumulator : public signal_base { public: @@ -1027,10 +1027,10 @@ public: * * @ingroup signal */ -template <typename T_return, typename... T_arg> +template <class T_return, class... T_arg> class signal; -template <typename T_return, typename... T_arg> +template <class T_return, class... T_arg> class signal<T_return(T_arg...)> : public signal_with_accumulator<T_return, void, T_arg...> { public: @@ -1079,7 +1079,7 @@ public: * * @ingroup signal */ - template <typename T_accumulator> + template <class T_accumulator> class accumulated : public signal_with_accumulator<T_return, T_accumulator, T_arg...> { public: |