我知道C ++ Concepts提议的目的可能是对模板参数(例如,作为“序列”)的限制,而不是当前的情况,其中任何管理编译都足够好(和错误)消息很糟糕)。
但是 - 命名空间怎么样?我的意思是,目前,我们不能将它们用作模板参数,但是人们会认为如果一个方法只使用静态方法和类的成员,那么命名空间也应该是一个令人满意的事情传递给它。 Concepts建议的当前版本/当前实现是否支持该功能?如果没有,这是否被考虑和拒绝或只是没有考虑?
相关问题:
Is a class with only static methods better than a namespace with only non-member functions?
答案 0 :(得分:2)
Concepts没有添加在编译或运行时传递名称空间的机制。因此,无法使用命名空间测试名称空间,或使用命名空间对代码进行参数化,禁止使用宏。
反射TS可能允许在命名空间上进行反射(我不是最新的当前状态),但这与概念正交。也许可以操纵命名空间的具体化和反映,以允许对命名空间进行概念检查并以某种方式将它们传递给它们,但是如果它今天它可能不会明天和反之亦然,因为它依赖于两个不同的塑料特征,其中这样的副作用将是偶然的最好的。