deushiro

erase_all

Dec 7th, 2020 (edited)
491
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.61 KB | None | 0 0
  1. #pragma once
  2.  
  3. #include "typelist.h"
  4.  
  5. template<typename TList, typename TargetType>
  6. struct EraseAll;
  7.  
  8. template<typename TargetType>
  9. struct EraseAll<NullType, TargetType>{
  10.     typedef NullType NewTypeList;
  11. };
  12.  
  13. template<typename TargetType, typename Tail>
  14. struct EraseAll<TypeList<TargetType, Tail>, TargetType>{
  15.     typedef typename EraseAll<Tail,TargetType>::NewTypeList NewTypeList;
  16. };
  17.  
  18. template<typename Head, typename Tail, typename TargetType>
  19. struct EraseAll<TypeList<Head,Tail>, TargetType>{
  20.     typedef TypeList<Head,
  21.             typename EraseAll<Tail,TargetType>::NewTypeList> NewTypeList;
  22. };
Advertisement
Add Comment
Please, Sign In to add comment