【发布时间】:2014-04-08 00:32:30
【问题描述】:
C++ 标准化委员会中有一个研究小组提供 C++1z 或更高版本的编译时反射。我想知道具体目的是什么以及预期的工具会有多强大?
例如,是否可以使用这些工具命名函数或类?
struct A {int f() {return 42;}};
struct B {int (std::reflect<A>::member<0>::declname)() {return 43;}};
// equivalent to struct B {int f() {return 43;}};
如果它没有这么强大,典型的用例会是什么?
【问题讨论】:
-
它仍处于非常早期的阶段。你能做的最好的就是look at what people are proposing。
-
@JosephMansfield 我已经看过了,但由于我不知道学习组的“历史”,我不确定什么是“他们的终极梦想”......
-
我想他们也不知道。
-
有人否决了这个问题... wtf!它可能不会在编码中添加任何内容,但我确信在编译时从 static_assert 访问 enumerator_list 并不是什么新鲜事。这是一个很棒的功能。未来看起来很光明
-
这个问题似乎是题外话,因为它是关于推测的。它属于std-proposals 论坛。
标签: c++ reflection standard-library c++17