// C++11 way
template <typename... > struct typelist;
template <typename... Args,
typename = typename std::enable_if<
!std::is_same<typelist<Bar>,
typelist<typename std::decay<Args>::type...>
>::value
>::type
>
Bar(Args&&... args)
{
}