假设我有一个模板类型,例如:
如何编写一个概念来检查一个类型是否是该模板的实例化?
我找不到一个明显的方法来做到这一点,除非使用旧式的专用探测器类型或者可能是基于标记的基础类型。
template<typename A, typename B, typename C>
struct mytype { };
如何编写一个概念来检查一个类型是否是该模板的实例化?
template<typename T>
concept MyType = requires(T x) { ??? }
我找不到一个明显的方法来做到这一点,除非使用旧式的专用探测器类型或者可能是基于标记的基础类型。
do_stuff
没有使用那些模板参数,为什么我想要我的模板do_stuff
函数只接受一个mytype
实例化?为什么我不写一个适当的概念接口,让do_stuff
可以针对它编写?一个不明确依赖于mytype
本身的接口?这不像range::sort
是针对vector
特定地编写的;它是针对任何随机访问范围编写的;vector
仅提供了该接口。 - Nicol Bolas