这是由Declaring a new struct on the fly此处提出的问题直接链接/引用的。利用每个lambda具有唯一类型的事实,提供了一些解决方案,它们使用lambda是一种非常优雅的解决方案。解决方法如下:
template <size_t>
constexpr auto make_new_type() { return [](){}; }
using A = decltype(make_new_type<__LINE__>());
using B = decltype(make_new_type<__LINE__>());
using C = decltype(make_new_type<__LINE__>());
以上解决了什么问题,可以“一般”应用?