【发布时间】:2015-12-25 19:39:14
【问题描述】:
我对在 gcc 下编译没有问题但在 g++ 下没有问题的代码有疑问。我正在转向 g++,因为我想利用 boost 进行一些多线程改进。我得到的错误是这样的:
invalid conversion from 'void* volatile' to 'TrialVect*'
这段代码是:
static void funcSize( struct TrialVect *vector ) {
if ( vector->field ) {
struct TrialVect *ptr = BO2V (vector->first,vector->second);
}
}
当我用谷歌搜索时,转换变量存在一些问题,为什么?建议如何解决?
【问题讨论】:
-
从 void* 到其他指针类型的隐式转换是 C 的事情,这似乎是编写这些 sn-ps 的语言。C++ 没有那种隐式转换。要么进行手动转换,要么用适当的 C++ 重写代码。