草庐IT

typeInfo

全部标签

C++:type_info 区分类型

我知道编译器在实现std::type_info函数的行为方面有很大的自由度。我正在考虑使用它来比较对象类型,所以我想确定:std::type_info::name必须为两种不同的类型返回两个不同的字符串。std::type_info::before必须说Type1是beforeType2exclusive-orType2是beforeType1。//likethis:typeid(T1).before(typeid(T2))!=typeid(T2).before(typeid(T1))同一模板类的两种不同的特化被认为是不同的类型。同一类型的两个不同的typedef-initions是同

C++:type_info 区分类型

我知道编译器在实现std::type_info函数的行为方面有很大的自由度。我正在考虑使用它来比较对象类型,所以我想确定:std::type_info::name必须为两种不同的类型返回两个不同的字符串。std::type_info::before必须说Type1是beforeType2exclusive-orType2是beforeType1。//likethis:typeid(T1).before(typeid(T2))!=typeid(T2).before(typeid(T1))同一模板类的两种不同的特化被认为是不同的类型。同一类型的两个不同的typedef-initions是同

c++ - 是否可以跨 RTLD_LOCAL 加载的库合并 vtables/typeinfo 等弱符号?

对于上下文:我有一个Java项目,它部分使用两个JNI库实现。例如,libbar.so依赖于libfoo.so。如果这些是系统库,System.loadLibrary("bar");会成功的。但是因为它们是我用我的JAR运送的自定义库,所以我必须做类似的事情System.load("/path/to/libfoo.so");System.load("/path/to/libbar.so");libfoo需要先走,否则libbar找不到它,因为它不在系统库搜索路径中。这已经运行了一段时间,但我现在遇到了一个问题,尽管类型是正确的。我追踪到这两个库对该类型的类型信息有不同的定义,并且它们没

hadoop - org.apache.kylin.job.exception.ExecuteException : java. lang.NoClassDefFoundError: org/apache/hadoop/hive/serde2/typeinfo/TypeInfo 问题

我在https://issues.apache.org/jira/browse/KYLIN-2511上发现了类似的错误环境:hadoop-2.7.1hbase-1.3.2apache-hive-2.1.1-binapache-kylin-1.6.0-hbase1.x-bin我已经尝试将所有的hive库复制到kylin,但是又出现了另一个错误。org.apache.hadoop.mapred.YarnChild:Errorrunningchild:java.lang.NoClassDefFoundError:org/apache/hadoop/hive/serde2/typeinfo/T

hadoop - serde2.objectinspector 和 typeinfo 包之间的区别

这两个包有什么区别:org.apache.hadoop.hive.serde2.objectinspectororg.apache.hadoop.hive.serde2.typeinfo有一个是更新的API吗?它们都是最新的,但有些不同吗?他们看起来和我很相似:/ 最佳答案 因为这两个包都在说明符serde2下,我认为它们都在当前使用中TypeInfo存储了一种类型的信息,每种类型只有一个对象来表示它。所以,TypeInfo只是处理对象类型(类别、类型名称等)的只读信息Hive对于给定的类型有多种内存数据格式(例如Integer:I

c++ - 使用 typeinfo::name() 后内存泄漏

我有一个程序,其中部分用于信息日志记录,我在使用时输出一些类的名称(具体来说,我在日志中添加了一个条目,上面写着Messages::CSomeClasstransmittedto127.0.0.1)。我使用类似于以下的代码执行此操作:std::stringgetMessageName(void)const{returnstd::string(typeid(*this).name());}是的,在有人指出之前,我意识到typeinfo::name的输出是特定于实现的。根据MSDNThetype_info::namememberfunctionreturnsaconstchar*toanu

c++ - 为什么 Apple 的 Clang(来自 Xcode 5)为 arm64 制作 typeinfos private_extern?

如果编译这个文件p3.cxx:classfoobarclass{public:inti0;};voidotherfun(void);voidmumble(void);voidfun(void){try{otherfun();}catch(foobarclass&e){mumble();}}像这样:xcrunclang++-archarm64-isysroot/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk-fexceptions-cp

c++ - 为什么在使用 typeid 运算符时需要#include <typeinfo>?

typeid表示C++RTTI运算符也是C++关键字。它返回一个std::type_info保存(动态)类型特定信息的对象。根据我从各种来源了解到的情况,其中一个必须包含使用typeid时,否则程序格式错误。事实上,如果我不包含前面提到的头文件,我的gcc5.2编译器甚至不会编译程序。我不明白为什么使用C++keyword时必须包含header。我理解每当我们使用在该header中声明/定义的某些对象时都需要一个header,但是typeid不是类类型。那么,强制包含header的原因是什么?? 最佳答案 下一段:Thetypeid

c++ - 使用 clang++、-fvisibility=hidden、typeinfo 和 type-erasure

这是我在MacOSX上使用clang++时遇到的问题的缩小版本。经过认真编辑,以更好地反射(reflect)真正的问题(描述问题的第一次尝试没有表现出问题)。失败我有一个C++软件,在目标文件中有大量符号,所以我使用-fvisibility=hidden保持我的符号表很小。众所周知,在这种情况下,必须特别注意vtables,我想我面临这个问题。但是,我不知道如何以一种让gcc和clang都满意的方式优雅地解决它。考虑base具有向下转换运算符的类,as,和derived类模板,其中包含一些有效负载。对base/derived用于实现类型删除://foo.hh#defineAPI__at

c++ - 未定义对 `typeinfo for class' 的引用

这个问题在这里已经有了答案:关闭10年前.PossibleDuplicate:g++undefinedreferencetotypeinfoUndefinedsymbols“vtablefor…”and“typeinfofor…”?我无法使用我的类(class)。classAccel{public:virtualvoidinitialize(void);virtualvoidmeasure(void);virtualvoidcalibrate(void);virtualconstintgetFlightData(byte);};classAccel_ad:publicAccel{pub