0

我知道 C++ 概念提案的目的可能是对模板参数(例如,作为“序列”)施加限制,在当前情况下,无论设法编译什么都足够好(并且错误消息非常糟糕) )。

但是 - 名称空间呢?我的意思是,目前,我们不能将它们用作模板参数,但有人会认为,如果一个方法只使用静态方法和类的成员,那么命名空间也应该是一个令人满意的传递给它。概念提案的当前版本/当前实施是否支持这一点?如果没有,这是否被考虑并拒绝或只是不考虑?

相关问题:

仅具有静态方法的类是否比仅具有非成员函数的命名空间更好?

4

1 回答 1

2

Concepts 没有添加在编译或运行时传递命名空间的机制。因此,没有办法针对 conceot 测试命名空间,或者使用命名空间参数化代码,除非使用宏。

反射 TS 可能允许对名称空间进行反射(我不了解其当前状态),但这与概念正交。也许可以操纵命名空间的具体化和反射,以允许对命名空间进行概念检查并以某种方式传递它们,但如果今天这样做,明天可能不会,反之亦然,因为它依赖于两个不同的塑料特性,这种副作用在最好的。

于 2017-08-25T21:00:00.383 回答