草庐IT

dynamically-generated

全部标签

c++ - boost::uuids::random_generator 和多线程的唯一性

当我用单线程生成随机数时,在4Muuid中没有生成重复项,但如果我用两个线程生成每个1M,我看到大约16-20个重复项。可能是什么原因?classTestUuid{public:std::stringGenerateUUid(){boost::uuids::uuiduid;{boost::mutex::scoped_lock(m_mRandomGen);uid=m_oRandomGen();}std::stringstreamss;ss&mUids,unsignedcount){for(unsignedi=0;i::const_iteratorit=mUids.find(sUid);i

c++ - 为什么 dynamic_cast 是邪恶的还是不邪恶的?在这种情况下我应该使用 dynamic_cast 吗?

有人说theuseofdynamic_castoftenmeansbaddesignanddynamic_castcanbereplacedbyvirtualfunctions为什么使用dynamic_cast被认为是糟糕的设计?假设我有函数名称func(Animal*animal,intanimalType),func中的实现如下:boolfunc(Animal*animal,intanimalType){.../*AnimalisthebaseclassofBear,Panda,Fish....dynamic_castanimaltorealanimals(Bear,Panda,F

c++ - 为什么虚函数调用比 dynamic_cast 快?

我写了一个简单的例子,估计调用虚函数的平均时间,使用基类接口(interface)和dynamic_cast和调用非虚函数。这是它:#include#include#include#include#defineCALL_COUNTER(3000)__forceinlineintsomeFunction(){return5;}structBase{virtualintvirtualCall()=0;virtual~Base(){};};structDerived:publicBase{Derived(){};virtual~Derived(){};virtualintvirtualCal

c++ - 避免 dynamic_cast/RTTI

我最近正在为一个副项目(cpp-markdownlibrary,出于好奇)编写一段C++代码,遇到了一个编码问题,我想听听一些意见。cpp-markdown有一个名为Token的基类,它有许多子类。两个主要的子类是Container(包含其他Token的集合)和TextHolder(用作Token的基类当然是包含文本的)。大部分处理是通过虚函数处理的,但其中一些处理在单个函数中处理效果更好。为此,我最终使用dynamic_cast将指针从Token*向下转换为它的子类之一,这样我就可以调用特定于子类的函数,并且它的子类。转换不可能失败,因为代码能够通过虚函数(例如isUn​​match

Android Studio,构建 kotlin : wrong code generated 时出现奇怪错误

我尝试了几天来构建我的android项目(主要包含kotlin)...我尝试更改所有内容的版本,但在构建时总是遇到同样的错误!我收到的消息如下所示:Kotlin编译器:org.jetbrains.kotlin.codegen.CompilationException:Back-end(JVM)Internalerror:wrongcodegeneratedJava编译器:org.jetbrains.kotlin.codegen.CompilationException:Back-end(JVM)Internalerror:Couldn'ttransformmethodnode:java

Android Studio,构建 kotlin : wrong code generated 时出现奇怪错误

我尝试了几天来构建我的android项目(主要包含kotlin)...我尝试更改所有内容的版本,但在构建时总是遇到同样的错误!我收到的消息如下所示:Kotlin编译器:org.jetbrains.kotlin.codegen.CompilationException:Back-end(JVM)Internalerror:wrongcodegeneratedJava编译器:org.jetbrains.kotlin.codegen.CompilationException:Back-end(JVM)Internalerror:Couldn'ttransformmethodnode:java

c++ - 重新发明轮子 : Random Number Generator

所以我是C++的新手,正在尝试学习一些东西。因此,我正在尝试制作一个随机数生成器(如果您愿意,可以使用RNG或PRNG)。我对RNG有基本的了解,比如你必须从种子开始,然后通过算法发送种子。我坚持的是人们如何提出上述算法。这是我必须获得种子的代码。intgetSeed(){time_trandSeed;randSeed=time(NULL);returnrandSeed;}现在我知道在C++中有预构建的RNG,但我希望学习的不仅仅是复制其他人的工作并尝试弄清楚。因此,如果有人能引导我到可以阅读的地方或向我展示如何为此提出算法的示例,我将不胜感激。 最佳答案

c++ - dynamic_cast<>有多快

...大约与典型的std::string::operator==()相比?我在下面提供了更多详细信息,我不确定它们是否有任何相关性。具有复杂性或近似值的答案就足够了。谢谢!详细信息:我将在列表的for循环中使用它来查找一些特定实例。我估计我的平均继承水平为3.5类。我正在寻找的那个有一个父类、一个祖父类和在这两个“接口(interface)”之上,即用几个virtualvoidabc()=0;来抽象类。没有我要查找的子类。 最佳答案 这在很大程度上取决于您的编译器、特定的类层次结构、硬件以及各种因素。您确实需要直接在您的特定应用程序

c++ - 如果与指针一起使用,dynamic_cast 何时会抛出异常?

我在源代码中使用dynamic_cast将指针转换为如下所示,Base*base=herestoringthepointer;Derived*derived=dynamic_cast(base);如果base没有类层次结构的指针,则转换失败并返回NULL。在接下来的几行中,我正在检查NULL。所以没问题。我遇到了故障转储,我的应用程序由于dynamic_cast抛出异常而崩溃。我知道dynamic_cast只有在与引用类型一起使用时才会抛出异常。知道当我在上面的源代码中使用指针时,dynamic_cast会抛出异常吗? 最佳答案 A

c++ - 使用 dynamic_cast 转换 const 类

我想投这个:classBase{public:virtual~Base(){};};classDer:publicBase{};intmain(){constBase*base=newDer;Der*der=dynamic_cast(base);//Errorreturn0;}我该怎么办?我试着输入:constDer*der=dynamic_cast(base);维护常量,但这不起作用。 最佳答案 试试这个:constDer*der=dynamic_cast(base);dynamic_cast无法删除const限定符。您可以使用c