deushiro

erase

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