提问人: 提问时间:8/12/2023 更新时间:8/12/2023 访问量:41
派生模板类指针转换中的编译器提示
compiler hint in derived template class pointer conversion
问:
如何定义在尝试编译以下代码时将显示的编译器错误消息?
template<int n> struct Base{};
struct Derived: Base<2>{};
int main(){
Derived x;
Base<1>* p;
p=&x; // a compiler hint like "Derived has dimension 2, not 1" would be nice.
}
正如预期的那样,上面的代码生成了编译错误,我希望实现的是用类似 .cannot convert 'Derived*' to 'Base<1>*' in assignment
because Derived has dimension 2, not 1
我的申请背景: 我有具有模板维度的模板虚拟问题类,以及一个具有内存的模板求解器类,具体取决于模板参数的维度,这是一个派生的问题类。当传递一个不兼容维度的派生问题时,我想通过提示维度来帮助用户识别编译错误。我不想用一个额外的维度模板参数来扩充求解器。
答: 暂无答案
上一个:同时使用组件继承和模板组合
评论
cannot convert 'Derived*' to 'Base<1>*' in assignment
static_assert