Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template <typename T>
- typename enable_if<is_base_of<BaseClass, T>::value, void>::type
- function() {
- // do stuff with T, which is ensured to be a child class of BaseClass
- }
- template <typename... T>
- /* What goes here? */
- function() {
- // do stuff with the T types, which are ensured to be child classes of BaseClass
- }
- template <typename Base, typename T, typename... Ts>
- struct are_base_of :
- std::conditional<std::is_base_of<Base, T>::value, are_base_of<Base, Ts...>,
- std::false_type>::type
- {};
- template <typename Base, typename T>
- struct are_base_of<Base, T> : std::is_base_of<Base, T> {};
- template <typename... Ts>
- typename std::enable_if<are_base_of<BaseClass, Ts...>::value, void>::type
- function() {
- // do stuff with Ts, which is ensured to be a child class of BaseClass
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement