草庐IT

bad_cast

全部标签

MongoDB:无法规范化查询:BadValue bad geo query

我在2dsphere上索引了字段loc,但无法对Point类型的GeoJson数据运行geowithin查询。这里是查询:db.test.find({loc:{$geoWithin:{$geometry:{type:"Polygon",coordinates:[[[-74.6862705412253,40.42341005],[-75.0846179,39.9009465],[-74.20570119999999,41.0167639]]]}}}}输出:uncaughtexception:error:{"$err":"Can'tcanonicalizequery:BadValuebad

MongoDB:无法规范化查询:BadValue bad geo query

我在2dsphere上索引了字段loc,但无法对Point类型的GeoJson数据运行geowithin查询。这里是查询:db.test.find({loc:{$geoWithin:{$geometry:{type:"Polygon",coordinates:[[[-74.6862705412253,40.42341005],[-75.0846179,39.9009465],[-74.20570119999999,41.0167639]]]}}}}输出:uncaughtexception:error:{"$err":"Can'tcanonicalizequery:BadValuebad

c++ - 避免 dynamic_cast 的模式

我有一个类:classA{public:virtualvoidfunc(){…}virtualvoidfunc2(){…}};还有一些派生类,比如B、C、D...在95%的情况下,我想遍历所有对象并调用func或func2(),因此我将它们放在一个vector,例如:std::vector>myVec;…for(autoit=myVec.begin();it!=myVec.end();++it)(*it).func();但是,在其余5%的情况下,我想根据它们的子类对类做一些不同的事情。我的意思是完全不同的,比如调用带有其他参数的函数,或者根本不调用某些子类的函数。我已经想到了一些解决这

c++ - dynamic_cast 的正确用例是什么?

我多次被告知(并且在实践中看到我自己)使用dynamic_cast通常意味着糟糕的设计,因为它可以而且应该用虚函数代替。例如,考虑以下代码:classBase{...};classDerived:publicBase{...};...Base*createSomeObject();//MightcreateaDerivedobject...Base*obj=createSomeObject();if(dynamic_cast(obj)){//dostuffinoneway}else{//dostuffinsomeotherway}可以很容易地看出,我们可以将一个虚函数doStuff()

c++ - 为什么只有 char* 是 <Bad Ptr>,而不是其他数据类型?

我正在学习C++中的指针。例如在初始化指针时,double*pvalue1=nullptr;//okaychar*pvalue2=nullptr;//onlythissays,"0x00000000"(inthewatchwindowofVisualC++2010)int*pvalue3=nullptr;//okay为什么只有char类型指针给出BadPtr而其他指针类型没有?我现在不关心指向的值。我没有取消引用它们(这就是上面出现这些错误的原因)。我只是在查看这三个指针的监window口。 最佳答案 对于大多数指针类型,Visua

c++ - shared_dynamic_cast 和 dynamic_pointer_cast 的区别

谁能给我解释一下:shared_dynamic_cast和dynamic_pointer_cast来自Boost库?在我看来它们可能是等价的。 最佳答案 给定一个shared_ptr,这两个函数确实是等价的。区别在于shared_dynamic_cast仅适用于shared_ptr的,而dynamic_pointer_cast适用于任何类型的指针(通过重载)。这使您可以对任何指针concept执行动态转换,而不管该指针实际上是如何构成的:#include#includestructfoo{};structbar:foo{voidf(

c++ - 如何使用 boost::lexical_cast 和 std::boolalpha?即 boost::lexical_cast< bool > ("true")

我已经看到其他boost::lexical_cast问题的一些答案,这些问题断言以下是可能的:boolb=boost::lexical_cast("true");这不适用于g++4.4.3boost1.43。(也许它确实适用于默认设置std::boolalpha的平台)This是字符串到bool问题的一个很好的解决方案,但它缺少boost::lexical_cast提供的输入验证。 最佳答案 除了答案形式poindexter之外,您还可以将here中的方法包装起来。在boost::lexical_cast:的特殊版本中namespa

c++ - 为什么 static_cast(*this) 到基类会创建一个临时拷贝?

我正在阅读EffectiveC++并遇到了这个例子:classWindow{//baseclasspublic:virtualvoidonResize(){...}//baseonResizeimpl...};classSpecialWindow:publicWindow{//derivedclasspublic:virtualvoidonResize(){//derivedonResizeimpl;static_cast(*this).onResize();//cast*thistoWindow,//thencallitsonResize;//thisdoesn'twork!.../

c++ - static_cast<int>(foo) 与 (int)foo

有人能详细说明一下区别吗? 最佳答案 不同之处在于(int)foo可以表示六种不同的东西。它可能是一个static_cast(在静态已知类型之间转换),它可能是一个const_cast(添加或删除const-ness),或者它可能是一个reinterpret_cast(在指针类型之间转换)编译器会尝试每一个,直到找到一个可以工作的。这意味着它可能不会总是选择您期望的那个,因此它可能会成为一个微妙的错误来源。此外,static_cast更容易搜索或进行搜索/替换。 关于c++-static

C++ static_cast 运行时开销

请看下面的代码。a)在这种情况下(简单继承,没有虚拟成员),B::df()中的静态转换是否有任何开销(无论如何)?我发现了一些类似问题的相互矛盾的答案,这就是我问的原因......b)我正在考虑将A中的constM1*func设为私有(private),并在B中引入一个新的私有(private)字段constM2*func以避免强制转换,但它有点使事情复杂化并使智能指针的使用更加困难。你有没有更好的方法来避免Actor阵容?classM1{public:doublef()const;};classM2:publicM1{public:doubledf()const;};classA{p