草庐IT

email_from

全部标签

Mongodb错误: Can't extract geo keys from object,畸形几何?

mongodb2.4.3出现以下错误无法从对象、格式错误的几何图形中提取地理键?{type:"Polygon",coordinates:[[[103.8324334524412,1.284232321447769],[103.8342325475588,1.284232321447769],[103.8342325469261,1.282433678236006],[103.8324334530738,1.282433678236006]]]}有人可以帮我理解这个问题吗?它看起来像一个有效的geoJSON对象。我的索引是2dsphere类型的。我正在运行的两个步骤是:collectio

c++ - “In instantiation of … required from here” 是什么意思?

我收到以下编译器¹消息main.cpp:Ininstantiationof‘voidfkt(Foo)[withFoo=int]’:main.cpp:5:7:requiredfromhere无论如何都会创建二进制文件,所以这不是错误。但这也是未标记为警告。这是什么消息,为什么我会收到它?我将代码简化为以下示例templatevoidfkt(Foof){}intmain(){fkt(1);return0;}¹gcc4.7.2编辑:这里是重现的步骤:%catmain.cpptemplatevoidfkt(Foof){}intmain(){fkt(1);return0;}%g++-Wall-W

C++ 类型转换 : cast a pointer from void pointer to class pointer

如何将指向void对象的指针转换为类对象? 最佳答案 使用static_cast。请注意,只有当指针确实指向指定类型的对象时,您才必须这样做;也就是说,指向void的指针的值取自指向此类对象的指针。thing*p=whatever();//pointertoobjectvoid*pv=p;//pointertovoidthing*p2=static_cast(pv);//pointertothesameobject如果您发现自己需要这样做,您可能需要重新考虑您的设计。你放弃了类型安全,让编写无效代码变得容易:something_el

c++ - 将 C 数组分配给 C+ +'s std::array? (std::array<T,U> = T[U]) - no suitable constructor exists from "T [U ]"to "std::array<T,U>"

我正在尝试将C数组分配给C++std::array。我该如何做到这一点,最干净的方式并且不制作不需要的拷贝等?什么时候做intX[8];std::arrayY=X;我得到一个编译器错误:“不存在合适的构造函数”。 最佳答案 没有从普通数组到std::array的转换,但是您可以将元素从一个复制到另一个:std::copy(std::begin(X),std::end(X),std::begin(Y));这是一个工作示例:#include#include#include//std::copyintmain(){intX[8]={0,1

c++ - 嵌套类 : Access to protected member of enclosing class from a nested protected class

此代码在msvc/g++上编译:classA{protected:inti;classB{public:A*a;B(A*a_):a(a_){}voiddoSomething(){if(a)a->i=0;//如您所见,B可以访问封闭类的“protected”部分,尽管它没有被声明为友元。这是一种标准(符合标准的)行为吗?我有时会使用此功能,但我不记得有一条规则说嵌套的protected类应该自动访问封闭类的所有protected数据。 最佳答案 在C++03标准中,11.8p1说:Themembersofanestedclasshav

c++ - 警告 : deprecated conversion from string constant to 'char*' '

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Howtogetridofdeprecatedconversionfromstringconstantto‘char*’warningsinGCC?我使用库中的以下函数,但我无法更改:HRESULTDynamicTag(char*pDesc,int*constpTag);我使用它如下。我已经创建了实现上述功能的库提供的类的对象。inttag=0;g_pCallback->DynamicTag("MyLogger",&tag);我收到以下警告:warning:deprecatedconversionfromst

c++ - 为什么 enable_shared_from_this 有一个非虚拟析构函数?

我有一个宠物项目,我用它来试验C++11的新特性。虽然我有C方面的经验,但我对C++还是很陌生。为了训练自己掌握最佳实践(除了大量阅读),我启用了一些严格的编译器参数(使用GCC4.4.1):-std=c++0x-Werror-Wall-Winline-Weffc++-pedantic-errors这对我来说效果很好。到现在为止,我已经能够解决所有的障碍。但是,我需要enable_shared_from_this,这给我带来了问题。编译我的代码(可能由-Weffc++触发)时,我收到以下警告(在我的情况下是错误):baseclass‘classstd::enable_shared_fr

c++ - g++编译错误 "... is protected from within this context",而clang没有错误

我有以下代码:#includeclassBaseClass{protected:staticintx;};intBaseClass::x;classDerivedA:publicBaseClass{public:DerivedA(){x=3;}};classDerivedB:publicBaseClass{public:DerivedB(){std::cout使用g++编译(g++classtest.cpp)我收到以下错误:classtest.cpp:Inconstructor‘DerivedB::DerivedB()’:classtest.cpp:9:5:error:‘intBase

c++ - enable_shared_from_this - 空的内部弱指针?

我正在使用enable_shared_from_this然后从Base继承.尝试使用shared_from_this()时在Derived的构造函数(不是初始化列表),我得到一个异常。原来内部弱指针为空,并不指向this一点也不。这怎么可能发生?我的另一个用例完全可以正常工作。我什至不知道从哪里开始。我低头看了enable_shared_from_this的源码,在我看来,该指针始终为nullptr。 最佳答案 您不能在对象的构造函数中调用shared_from_this()。shared_from_this()要求对象由至少一个s

c++ - 奇怪的编译器错误 : Cannot convert parameter from 'int' to 'int &&'

这到底是怎么回事?我正在尝试创建一对int和一个string如果我使用“魔术值”但似乎无法传递变量,我可以创建这对.std::vector>num_text;std::stringtext="Smeg";intnum=42;//Worksfinenum_text.push_back(std::make_pair(42,std::string("Smeg")));//Cannotconvertparameter2from'std::string'to'std::string&&'num_text.push_back(std::make_pair(42,text));//Cannotcon