#include "typelist.h" //LISTSEARCH template struct ListSearch { ListSearch(ListSearch const &) = delete; }; //= //EMPTY template struct ListSearch> { ListSearch(ListSearch const &) = delete; enum { index = -1 }; }; //= //TAIL template struct ListSearch> { ListSearch(ListSearch const &) = delete; enum { index = 0 }; }; //= //FULL template struct ListSearch > { ListSearch(ListSearch const &) = delete; enum {tmp = ListSearch>::index}; enum {index = tmp == -1 ? -1 : 1 + tmp}; }; //=