草庐IT

Implicit_cast

全部标签

c++ - 禁用 RTTI 的 dynamic_cast

我很想知道在禁用RTTI的情况下使用动态转换编译代码时会发生什么(在GCC上使用-fno-rtti或在VisualStudio上使用/GR-)。编译器是否“回退”到static_cast?由于(至少在VS上)它只会发出警告,所以编译后的代码会做什么?更具体地说,如果我在没有RTTI的情况下编译我确信dynamic_cast不会出错的代码(即dynamic_cast可以安全地替换为static_cast)喜欢这个:classA{/*...*/};classB:publicA{intfoo(){return42;}};//...A*myA=newB();intbar=(dynamic_ca

c++ - 禁用 RTTI 的 dynamic_cast

我很想知道在禁用RTTI的情况下使用动态转换编译代码时会发生什么(在GCC上使用-fno-rtti或在VisualStudio上使用/GR-)。编译器是否“回退”到static_cast?由于(至少在VS上)它只会发出警告,所以编译后的代码会做什么?更具体地说,如果我在没有RTTI的情况下编译我确信dynamic_cast不会出错的代码(即dynamic_cast可以安全地替换为static_cast)喜欢这个:classA{/*...*/};classB:publicA{intfoo(){return42;}};//...A*myA=newB();intbar=(dynamic_ca

c++ - 为什么使用 std::forward<T> 而不是 static_cast<T&&>

当给出以下结构的代码时templatevoidfoo(Args&&...args){...}我经常看到库代码使用static_cast在用于参数转发的函数中。通常,这样做的理由是使用static_cast避免不必要的模板实例化。给定语言的引用折叠和模板推导规则。我们通过static_cast获得完美的转发,此声明的证明如下(在误差范围内,我希望答案能启发)当给定右值引用时(或为了完整性-没有像thisexample中的引用限定),这会折叠引用,结果是一个右值。使用的规则是&&&&->&&(规则1以上)当给定左值引用时,这会折叠引用以使结果是左值。这里使用的规则是&&&->&(规则2以上

c++ - 为什么使用 std::forward<T> 而不是 static_cast<T&&>

当给出以下结构的代码时templatevoidfoo(Args&&...args){...}我经常看到库代码使用static_cast在用于参数转发的函数中。通常,这样做的理由是使用static_cast避免不必要的模板实例化。给定语言的引用折叠和模板推导规则。我们通过static_cast获得完美的转发,此声明的证明如下(在误差范围内,我希望答案能启发)当给定右值引用时(或为了完整性-没有像thisexample中的引用限定),这会折叠引用,结果是一个右值。使用的规则是&&&&->&&(规则1以上)当给定左值引用时,这会折叠引用以使结果是左值。这里使用的规则是&&&->&(规则2以上

Jackson: java.util.LinkedHashMap cannot be cast to X

本文翻译自:https://www.baeldung.com/jackson-linkedhashmap-cannot-be-cast1.概述:Jackson是一个广泛使用的Java库,它允许我们方便地序列化/反序列化JSON或XML。有时,当我们尝试将JSON或XML反序列化为对象集合时,可能会遇到“ java.lang.ClassCastException:java.util.LinkedHashMapcannotbecasttoX”。在本教程中,我们将讨论为什么会发生上述异常以及如何解决该问题。2.理解问题让我们创建一个简单的Java应用程序来重现此异常,以了解异常何时发生。2.1 创建

为什么C ++编译器不从最后一类优化此Dynamic_cast?

考虑此类层次结构:structAnimal{virtual~Animal();};structCat:virtualAnimal{};structDogfinal:virtualAnimal{};我的理解是final上classDog确保没有人可以创建从Dog,这是必然的,这意味着没有人可以创建一个is-a的班级Dog和is-aCat同时。考虑这两个dynamic_castS:Dog*to_final(Cat*c){returndynamic_cast(c);}Cat*from_final(Dog*d){returndynamic_cast(d);}GCC,ICC和MSVC忽略final预选赛

Python 3.5+ : How to dynamically import a module given the full file path (in the presence of implicit sibling imports)?

问题标准库明确记录howtoimportsourcefilesdirectly(给定源文件的绝对文件路径),但如果源文件使用下面示例中描述的隐式同级导入,则此方法不起作用。如果存在隐式同级导入,该示例如何适应工作?我已经checkoutthis和thisotherStackoverflow有关该主题的问题,但它们没有解决手动导入的文件内的隐式同级导入。设置/示例这是一个说明性示例目录结构:root/-directory/-app.py-folder/-implicit_sibling_import.py-lib.pyapp.py:importosimportimportlib.util

Python 3.5+ : How to dynamically import a module given the full file path (in the presence of implicit sibling imports)?

问题标准库明确记录howtoimportsourcefilesdirectly(给定源文件的绝对文件路径),但如果源文件使用下面示例中描述的隐式同级导入,则此方法不起作用。如果存在隐式同级导入,该示例如何适应工作?我已经checkoutthis和thisotherStackoverflow有关该主题的问题,但它们没有解决手动导入的文件内的隐式同级导入。设置/示例这是一个说明性示例目录结构:root/-directory/-app.py-folder/-implicit_sibling_import.py-lib.pyapp.py:importosimportimportlib.util

java:如何修复 Unchecked cast 警告

我有以下代码:privateHashMap,HashMap>m_componentStores;publicTgetComponent(Entitye,ClassexampleClass){HashMapstore=m_componentStores.get(exampleClass);Tresult=(T)store.get(e);if(result==null){thrownewIllegalArgumentException("GETFAIL:"+e+"doesnotpossessComponentofclass\nmissing:"+exampleClass);}returnr

java:如何修复 Unchecked cast 警告

我有以下代码:privateHashMap,HashMap>m_componentStores;publicTgetComponent(Entitye,ClassexampleClass){HashMapstore=m_componentStores.get(exampleClass);Tresult=(T)store.get(e);if(result==null){thrownewIllegalArgumentException("GETFAIL:"+e+"doesnotpossessComponentofclass\nmissing:"+exampleClass);}returnr