草庐IT

func_pointer

全部标签

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限定符:没有它语言也可

C51单片机开发程序报错 main.c (11) : error C267 : ‘Func‘ : requires ANSI-style prototype

问题C51单片机开发程序报错main.c(11):errorC267:'Func':requiresANSI-styleprototype详细问题问题一问题二问题三可能原因一函数定义声明处(.h文件中)与主函数中函数(函数名/参数类型/返回值类型)不一致解决方案一修改,将两者保持一致,初学者可能会手误写错函数名,建议直接将函数定义声明处(.h文件中)函数名CV至主函数中调用的函数名,确保定义声明处于调用处一致如笔者所列错误一,将函数名由Nieix改为Nixie即可可能原因二调用函数所需的.h头文件引入错误,可能包含.h头文件书写错误,.h头文件于调用函数所需的.h头文件不一致解决方案二对于拼写

使用 call_user_func_array 插入时 redis 丢失 key

我试图将10K个元素放入一个数组中,并尝试使用call_user_func_array将它们添加到redisset中,但我得到了一个非常奇怪的结果。这是代码:$redis=newRedis();$redis->connect('127.0.0.1',6380);$list_id=0;$test_ar=array();for($i=0;$iscard('test:'.$list_id);echo"test_cnt:$test_cnt\n";这是输出:testarraycnt:10000arraychunk:Array([0]=>test:0[1]=>2[2]=>4[3]=>2[4]=>4

c# - 使用 MongoDB 的 Linq 查询不能像 Func 那样工作

我在MongoDB集合上构建了一个Linq查询,它可以正确检索我的文档:varparts=mongoParts.AsQueryable().Where(mongo=>mongo.Prop1==bmbMatch.Prop1&&mongo.Prop2==bmbMatch.Prop2).ToList();这工作正常,但为了减少代码,我写了一个通用函数,接受一个Funcselector它采用与上面Where子句中完全相同的lamdba表达式,这使得它:varmongo=mongoQuery.AsQueryable().Where(tmongo=>selector(tmongo,localMat

c# - Delete(Expression<Func<T, bool>> criteria) MongoDB查询C#驱动

是否可以查询Expression>并删除找到的所有文件?我正在使用mongoDBc#驱动程序,我从mongo存储库中得到了这个想法,但我没有在我的实体上继承任何基类,所以我没有类和对通用属性“id”的访问权限以下代码将不起作用:foreach(Tentityinthis.collection.AsQueryable().Where(criteria)){this.Delete(entity.Id);}有什么建议吗? 最佳答案 您应该能够将查询传递给Remove。例如,删除所有具有name属性且值为"test123"的文档:colle

mongodb - MongoDB 中的 "Pointers"?

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