关闭clang中的类型转换
Turn off type conversion in clang
我正在将一个遗留代码从gcc迁移到clang。代码中有很多类型转换问题,即对void指针的算术运算,const char*到char*的转换,unsigned char*到char*的转换,将父类对象分配给子类。由于代码库非常大,对所有内容进行类型转换将是一项非常繁琐的任务。是否有任何(或一组)标志可以用来关闭这些错误?我已经试过-fpermissive或- wno -error-(错误类型)。
char* Page::pageTitle()
{
jvalue pageObject;
m_javaClass.CallMethod(
m_javaObject.Get(),
"getPageTitle",
"()Ljava/lang/String;",
'L',
(jvalue*)0,
&pageObject );
if (pageObject.l == NULL)
return NULL;
JNIEnv* env = JNIGetEnv();
jboolean isCopy = JNI_TRUE;
const char* pageString = env->GetStringUTFChars(pageObject.l, &isCopy);
return pageString;
}
error: cannot initialise a parameter of type 'jstring' (aka '_jstring *') with an lvalue of type 'jobject' (aka '_jobject *')
jvalue。l是任务类型,GetStringUTFChars在jni.h中声明为const char* GetStringUTFChars(jstring string, jboolean* isCopy)
_jstring声明为
class _jstring : public _jobject {}
所以我们试图将基类对象分配给子类,这被视为错误。考虑到代码库的大小,对所有出现的情况进行类型转换是不可行的。
是否有任何标志,通过它我可以禁用这种类型的错误在阻塞?
你能做的最好的事情是clang++ --std=c++98 -fpermissive
。
相关文章:
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- C++中的双指针类型转换
- 逐位操作的隐式类型转换
- 模板中的类型转换
- 在 C++(和 C)中进行类型转换时明显不一致
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- 字符类型转换不兼容
- 将复杂的非基元C++数据类型转换为 Erlang/Elixir 格式,以使用 NIF 导出方法
- C++:用户定义的显式类型转换函数错误
- 将类指针类型转换为键时出错
- 通过引用传递参数时C++类型转换
- 在 C++ 中将一个模板类型的对象类型转换为另一个模板类型
- C++显式类型转换(C 样式强制转换)的强制表示法和static_cast的多种解释
- C++无效的函数类型转换
- 在将派生类指针类型转换为派生类指针后,从基类指针调用派生类函数
- clang,返回带有类型转换的std::unique_ptr
- Clang 问题:构造时隐式类型转换
- 关闭clang中的类型转换
- 在模板参数的方法中添加类型转换时出现clang错误