如何修复"'一元'类型参数无效?
How do I fix "invalid type argument of 'unary'?
我一直在运行这个编译器错误:
'unary'类型参数无效
我对"一元"是什么做了一些研究,得到了像+,-.&
这样的运算符,所以我猜我在某个地方做了一个错误的运算符。我只包括有错误的代码的一部分,因为整个代码大约2000行长。也有其他错误的代码,但他们是相同的,所以我认为,如果我能得到什么是错误的这一个的理解,我应该能够找出那些。
static int cmp_bk( const void *ap, const void *bp)
{
int a;
int b;
dynamic_cast<const struct bk>(*a)=ap;
dynamic_cast<const struct bk>(*b)=bp;
if (a->hash < b->hash) return -1;
if (a->hash > b->hash) return 1;
return (int)a->bk - (int)b->bk;
}
我得到的确切错误是:
'unary *'类型参数无效
,它被设置为两行
dynamic_cast<const struct bk>(*a)=ap;
dynamic_cast<const struct bk>(*b)=bp;
没有适用于int
的一元*
运算符,因此*a
没有意义。
我相信你可能想要的是一个指向bk
的指针:
bk * pa;
bk * pb;
pa = dynamic_cast<bk*>(ap);
pb = dynamic_cast<bk*>(bp);
这只是一个疯狂的猜测,因为我不知道你的bk
类是如何定义的。现在还不清楚你是否真的想要一个动态演员。可能你真正需要的是重新解释强制转换。
我不明白你想返回什么,所以如果你解释一下,我可能会说得更多。
a
和b
是int
s, *a
应该对整数做什么?此外,你的cast看起来很奇怪,我假设你想要reinterpret_cast
指向bk
的指针。
相关文章:
- 在 c++ 中的模板实例化中使用带有构造函数的类作为类型参数
- 如何解决一元"*"(有"字符")错误的无效类型参数?
- "std::shared_ptr":不是参数"_Ty"的有效模板类型参数
- 具有可变参数非类型参数的模板专用化
- 错误:一元"*"的类型参数无效(具有"int"):使用 mergesort 计算
- 错误 带有模块的一元"*"(具有"int")的类型参数无效
- 一元'*'的类型参数无效(有双精度)
- 即使我传递了无效的类型参数,我为什么还能在没有错误的情况下编译此代码
- C++:无效的类型参数"->"
- 一元*的类型冲突error和无效类型参数具有int
- 映射迭代器:一元'*'的无效类型参数(具有"int")
- 一元 '*' 的 #define 和无效类型参数(具有 'double')
- 一元'*'的类型参数无效(有"布尔")
- 数组中一元'*'(具有"int")最低元素的类型参数无效
- 一元“*”的类型参数无效
- 错误:一元“*”(具有“int”)的类型参数无效
- 无效的参数类型导致缺少类型错误
- 如何修复"'一元'类型参数无效?
- 如何修复"'一元*'的无效类型参数?
- 错误:一元'*'的类型参数无效