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