Advertisement
deushiro

nodublicates

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