【发布时间】:2019-07-19 11:22:31
【问题描述】:
考虑这样的事情:
class A;
std::function<A(A)> f;
这显然是你想在你的程序中做的事情。任何主要编译器都可以毫无问题地接受这一点。
我的问题是:该标准在技术上是否允许?
如果我没看错的话,该部分
20.5.4.8 其他功能
禁止在实例化时使用不完整类型的模板参数,除非另有说明(不仅限于容器)。
在关于std::function 或<functional> 的部分中,我没有看到允许这样做的参考。
有人知道在哪里以及是否在标准中明确写入了吗?
【问题讨论】:
-
来自“最新”版本的标准:"[...] 效果未定义 [...]"。 res.on.functions。所以我认为对实现没有要求,它可以接受
标签: c++ types std-function