草庐IT

fluid-dynamics

全部标签

c++ - dynamic_cast 的性能?

阅读问题前:这个问题不是关于使用dynamic_cast有多大用处。它只是关于它的性能。我最近开发了一个经常使用dynamic_cast的设计。在与同事讨论时,几乎每个人都说不应该使用dynamic_cast,因为它的性能很差(这些同事背景不同,在某些情况下彼此不认识。我我在一家大公司工作)我决定测试这种方法的性能,而不是仅仅相信它们。使用了以下代码:ptimefirstValue(microsec_clock::local_time());ChildObject*castedObject=dynamic_cast(parentObject);ptimesecondValue(micr

c++ - 将 dynamic_cast 与引用和指针一起使用时的行为差异

我正在检查dynamic_cast的行为,发现当它失败时,只有当目标是引用类型时才会抛出std::bad_cast异常。如果目标是指针类型,则转换不会引发异常。这是我的示例代码:classA{public:virtual~A(){}};classB:publicA{};intmain(){A*p=newA;//Usingreferencetry{B&b=dynamic_cast(*p);}catch(std::bad_castexp){std::cout(p);if(pB==NULL){std::cout输出是“Caughtbadcast”和“NULLpointer”。代码使用VS20

c++ - 将 dynamic_cast 与引用和指针一起使用时的行为差异

我正在检查dynamic_cast的行为,发现当它失败时,只有当目标是引用类型时才会抛出std::bad_cast异常。如果目标是指针类型,则转换不会引发异常。这是我的示例代码:classA{public:virtual~A(){}};classB:publicA{};intmain(){A*p=newA;//Usingreferencetry{B&b=dynamic_cast(*p);}catch(std::bad_castexp){std::cout(p);if(pB==NULL){std::cout输出是“Caughtbadcast”和“NULLpointer”。代码使用VS20

c++ - OpenMP 中的 "static"和 "dynamic"调度有什么区别?

我开始使用C++使用OpenMP。我有两个问题:什么是#pragmaompforschedule?dynamic有什么区别和static?请举例说明。 最佳答案 其他人已经回答了大部分问题,但我想指出一些特定的情况,其中特定的调度类型比其他的更适合。调度控制如何在线程之间划分循环迭代。选择正确的时间表会对应用程序的速度产生很大的影响。static调度意味着迭代块以循环方式静态映射到执行线程。静态调度的好处在于,OpenMP运行时保证如果您有两个具有相同迭代次数的独立循环并使用静态调度以相同数量的线程执行它们,那么每个线程将获得完全相

c++ - OpenMP 中的 "static"和 "dynamic"调度有什么区别?

我开始使用C++使用OpenMP。我有两个问题:什么是#pragmaompforschedule?dynamic有什么区别和static?请举例说明。 最佳答案 其他人已经回答了大部分问题,但我想指出一些特定的情况,其中特定的调度类型比其他的更适合。调度控制如何在线程之间划分循环迭代。选择正确的时间表会对应用程序的速度产生很大的影响。static调度意味着迭代块以循环方式静态映射到执行线程。静态调度的好处在于,OpenMP运行时保证如果您有两个具有相同迭代次数的独立循环并使用静态调度以相同数量的线程执行它们,那么每个线程将获得完全相

javascript - "untyped"在学术 CS 世界中是否也意味着 "dynamically typed"?

我正在阅读一个幻灯片,上面写着“JavaScript未输入类型”。这与我认为的真实情况相矛盾,因此我开始挖掘以尝试了解更多信息。对IsJavaScriptanuntypedlanguage?的每个回答说JavaScript不是无类型的,并提供了我熟悉和满意的各种形式的静态、动态、强和弱类型的示例......所以这不是要走的路。于是我问了JavaScript的创造者BrendanEich,他说:academictypesuse"untyped"tomean"nostatictypes".theyaresmartenoughtoseethatvalueshavetypes(duh!).co

javascript - "untyped"在学术 CS 世界中是否也意味着 "dynamically typed"?

我正在阅读一个幻灯片,上面写着“JavaScript未输入类型”。这与我认为的真实情况相矛盾,因此我开始挖掘以尝试了解更多信息。对IsJavaScriptanuntypedlanguage?的每个回答说JavaScript不是无类型的,并提供了我熟悉和满意的各种形式的静态、动态、强和弱类型的示例......所以这不是要走的路。于是我问了JavaScript的创造者BrendanEich,他说:academictypesuse"untyped"tomean"nostatictypes".theyaresmartenoughtoseethatvalueshavetypes(duh!).co

Golang : cast an interface to a typed variable dynamically

在go中,是否可以以某种方式动态转换变量?例如,如果一个简单的Actor是:varintAge=interfaceAge.(int)如果我事先不知道年龄是一个整数怎么办?一个简单的写法是varx=getType()varsomeTypeAge=interfaceAge(.x)有没有办法实现这样的目标?reflect包提供了一些在运行时确定或强制转换类型的方法-但我找不到像上面提到的任何东西(适用于所有类型的通用方案)。 最佳答案 不,你不能。Go是一种静态类型语言。变量的类型是在编译时确定的。如果您想动态确定interface{}的

Golang : cast an interface to a typed variable dynamically

在go中,是否可以以某种方式动态转换变量?例如,如果一个简单的Actor是:varintAge=interfaceAge.(int)如果我事先不知道年龄是一个整数怎么办?一个简单的写法是varx=getType()varsomeTypeAge=interfaceAge(.x)有没有办法实现这样的目标?reflect包提供了一些在运行时确定或强制转换类型的方法-但我找不到像上面提到的任何东西(适用于所有类型的通用方案)。 最佳答案 不,你不能。Go是一种静态类型语言。变量的类型是在编译时确定的。如果您想动态确定interface{}的

c++ - C++ 中的 dynamic_cast 和 static_cast

我对C++中的dynamic_cast关键字感到很困惑。structA{virtualvoidf(){}};structB:publicA{};structC{};voidf(){Aa;Bb;A*ap=&b;B*b1=dynamic_cast(&a);//NULL,because'a'isnota'B'B*b2=dynamic_cast(ap);//'b'C*c=dynamic_cast(ap);//NULL.A&ar=dynamic_cast(*ap);//Ok.B&br=dynamic_cast(*ap);//Ok.C&cr=dynamic_cast(*ap);//std::bad