草庐IT

tchar_pointer

全部标签

C++ 使用 getline() 打印 : pointer being freed was not allocated in XCode

我正在尝试使用std:getline()但出现了一个奇怪的运行时错误:malloc:*errorforobject0x10000a720:pointerbeingfreedwasnotallocated*setabreakpointinmalloc_error_breaktodebug这是产生此错误的代码://main.cpp#include#includeintmain(intargc,char*constargv[]){std::istringstreammy_str("demostringwithspaces");std::stringword;while(std::getlin

c++ - <type_traits> 的 is_function_pointer<>

中有这些:is_pointeris_functionis_member_function_pointer但不是这个:is_function_pointer为什么会这样? 最佳答案 [meta.unary.cat]中的特征旨在将每种类型归为一个类别。是void、integral、pointer等等。在这个层面上,pointer-to-function和pointer-to-int没有区别。并注意指向成员的指针不是指针。只不过是英文的谐音而已。它的目的是每个类型都返回true到[meta.unary.cat]中的一个特征。在这种分类中,

c++ - 使用 std::dynamic_pointer_cast 向上转换 std::shared_ptr

我开始在C++0X/11中使用智能指针,但遇到了一个特殊情况。我想使用shared_ptr向上转换一个对象的实例。Extend类继承自Base类,其中Base类具有虚拟析构函数以使其具有多态性(否则dynamic_pointer_cast会提示非多态类转换)。如果因此:std::shared_ptrobj=std::make_shared();然后我做:obj=std::dynamic_pointer_cast(obj);安全吗?其他指向该对象的指针会怎样?是否只有obj将其视为Extend,而其他共享指针仍将其视为Base?向上转换同一实例是否安全,还是我应该做其他事情?编辑:感谢您

c++ - 如果为 false,则 std::is_member_function_pointer 不编译

我在寻找什么:我有一个模板化类,如果该类具有所需的函数,我想调用一个函数,例如:templatedo_something(){ifconstexpr(std::is_member_function_pointer::value){this->_t->x();//_tistypeofT*}}会发生什么:如果T没有带来函数,编译器就不会编译。小例子:#include#includeclassFoo{public:voidx(){}};classBar{};intmain(){std::cout::value::value编译器说:is_member_function_pointer.cpp

c++ - 带有 const 指针的 boost::dynamic_pointer_cast 不起作用?

假设我有两个类,A和B,其中B是A的子类。我还有以下功能:voidfoo(boost::shared_ptra){boost::shared_ptrb=boost::dynamic_pointer_cast(a);//Error!}用gcc编译会出现以下错误:C:\Boost\include/boost/smart_ptr/shared_ptr.hpp:Inconstructor'boost::shared_ptr>::shared_ptr(constboost::shared_ptr&,boost::detail::dynamic_cast_tag)[withY=constA,T=c

C++ 对象 : When should I use pointer or reference

我可以使用一个对象作为指向它的指针,或者它的引用。我知道不同之处在于必须手动删除指针,而引用会一直保留到超出范围为止。我应该什么时候使用它们?实际区别是什么?这两个问题都没有回答我的疑惑:Pointervs.ReferenceC++differencebetweenreference,objectsandpointers 最佳答案 引用基本上是一个有限制的指针(必须在创建时绑定(bind),不能反弹/为空)。如果您的代码使用这些限制是有意义的,那么使用引用而不是指针允许编译器警告您意外违反它们。它很像const限定符:没有它语言也可

c++ - 如何将 TCHAR 转换为 int

我想将TCHAR转换为int,但是当我转换它时,我得到的ASCII值是int,而不是数字值。代码:#include"stdafx.h"#include#include#includeusingnamespacestd;intconverttoint(){TCHARtchar[2];wcscpy_s(tchar,TEXT("5"));inti=tchar[0];cout>in;}Output:53但我希望我是5岁。如何做到这一点? 最佳答案 如果你想把一个字符串(包含一个整数)转换成一个int,你可以使用一些C函数,比如atoi()(

c++ - 启动新的 Windows 应用程序 : Should I use _TCHAR or wchar_t for text?

我正在用C++为Windows编写一个新的(个人爱好)应用程序。在以前的低级Windows内容中,我使用_TCHAR(或只是TCHAR)数组/basic_strings进行字符串操作。如果我不关心Win2k之前的Windows平台,使用_TCHAR比使用wchar_t直接使用Unicode有什么优势吗?编辑:提交后我在2008年10月发现了一个类似的问题:IsTCHARstillrelevant?现在似乎对放弃TCHAR达成了更多共识 最佳答案 不,没有。只需使用wchar_t。TCHAR仅在您希望能够使用条件编译开关将程序转换为以

c++ - Windows 上的 std::basic_string<TCHAR> 会优于 std::wstring 吗?

据我了解,Windows#definesTCHAR是基于构建的应用程序的正确字符类型-所以它是wchar_t在UNICODE构建和char否则。因此我想知道是否std::basic_string会比std::wstring更可取,因为第一个理论上会匹配应用程序的字符类型,而第二个总是很宽。所以我的问题本质上是:会std::basic_string优于std::wstring在Windows上?而且,使用std::basic_string会有什么注意事项(即意外行为或副作用)吗??或者,我应该只使用std::wstring在Windows上而忘记它? 最佳答案

mongodb - MongoDB 中的 "Pointers"?

在我目前正在从事的项目中,如果我创建一个包含指向存储在其他集合中的信息的“指针”列表的嵌套文档,似乎更能提高效率。这样,这个嵌套文档可以很容易地用于检索相关信息的列表。问题是,如何做到这一点?有没有办法在MongoDB的字段中存储其他信息的位置?如果没有,谁能提出一个同样有效或更有效的方案?非常感谢! 最佳答案 没有好的方法可以做到这一点。如果这是您正在寻找的,您应该使用关系数据库。但是,如果您必须走这条路,那么为什么不将ID存储在文档中,然后将这些ID链接到其他集合中的文档。不幸的是,这需要您执行2个单独的查询,因为Mongo不支