【发布时间】:2015-09-03 00:27:36
【问题描述】:
我正在尝试实现静态转换。我需要检查类型 T 和 U 是否可以隐式转换,如果不是,则检查一个是否从另一个继承。我可以编写一个类来检查它们中的每一个,但我不明白如何检查隐式转换以及如果它不编译检查继承。
所有的检查都需要在编译时开启
【问题讨论】:
-
你想要
is_convertible和is_constructible;例如请参阅N4064 中的“完美初始化”。 -
我只能使用不需要的基本工具和#include
-
@shay:那你最好写一个编译器……否则接下来几周你要做的就是重新发明一半的标准库,这样你就可以重新发明一个内置运算符...
-
我得到了函数 f(),如果 T 和 U 可隐式转换,则编译,函数 g(),如果 T 从 U 继承,则编译,但我不知道“如果 f()不编译尝试 g()"
标签: c++ oop static-cast