草庐IT

member-functions

全部标签

c++ - 为什么在 VC++ 调试器上计算表达式时会出现 "member function not present"错误?

我在另一个DLLMyDll.dll上有一个静态方法MyClass::myMethod()。在我的代码中,我调用了这个方法,它编译并运行良好。但是当我在即时窗口(或监window口)中尝试MyClass::myMethod()时,我总是得到:MyClass::myMethod()CXX0052:Error:memberfunctionnotpresent这是为什么?更新:我发现当我使用contextoperator它有效:{,,MyDLL}MyClass::myMethod()不过,我不太确定为什么需要它,所以我要稍等片刻,看看是否有人有很好的解释。更新2:我被要求提供更多信息。不幸的是

c++ - std::function 在堆栈数组中使用时崩溃

在MSVisualC++2010SP1中,此代码崩溃:#include"stdafx.h"#include#include//#includeinta=0;int_tmain(intargc,_TCHAR*argv[]){//thiswayitworks://std::vector>s;//s.push_back([](){a=1;});//s.push_back([](){a=2;intb=a;});std::functions[]={[](){a=1;},[](){a=2;//Problemoccursonlyifthefollowinglineisincluded.Whencom

c++ - 为什么将 T 从外部模板作为默认参数传递给 std::function 会导致编译错误?

我创建了一个模板类,并将T作为默认类型参数传递。但是,这会导致编译失败。任何人都可以解释发生了什么?谢谢!附言。我使用的编译器是VS2012。#includeusingnamespacestd;templatestructdelegate{typedeffunctionfunction_t;function_tf;};intmain(){delegated;return0;}编译器输出:1>.\MicrosoftVisualStudio11.0\VC\include\functional(554):errorC2027:useofundefinedtype'std::_Get_func

c++ - std::vector 的 std::functions 查找

我有一个填充有回调函数的vector,我想在添加之前检查是否已经存在回调函数。我不知道它是否会工作,但到目前为止它甚至无法编译。vector>_callbacks;voidEvent::RegisterCallback(std::functioncallback){if(callback==NULL)return;vector>::iteratorit=std::find(_callbacks.begin(),_callbacks.end(),callback);if(it==_callbacks.end()){_callbacks.push_back(callback);}else{

c++ - std::bind 到 std::function 使用 Clang 崩溃

在将std::bind与std::function组合时,我无法理解一些细微之处。我已将我的问题最小化为以下代码片段:#include#includevoidbar(intx){std::coutf1=std::bind(bar,std::placeholders::_1);//CRASHESwithclang,worksfineinVS2010andVS2012std::functionf2=std::bind(f1,1);f2();return0;}注意到std::function的显式转换(在构建std::function时将auto替换为f2效果很好)。正在创建f2通过复制f1

C++0x |为什么 std::atomic 使用 volatile-qualifier 重载每个方法?

当前草案的以下摘录说明了我的意思:namespacestd{typedefstructatomic_bool{boolis_lock_free()constvolatile;boolis_lock_free()const;voidstore(bool,memory_order=memory_order_seq_cst)volatile;voidstore(bool,memory_order=memory_order_seq_cst);boolload(memory_order=memory_order_seq_cst)constvolatile;boolload(memory_orde

c++ - 标准函数的函数指针和成员函数指针的规则是什么?

将函数指针或成员函数指针指向标准函数的现有规则是什么?例如,类似autop=&std::string::size;这合法吗?如果我明确请求正确的类型,它会或多或少是合法的,所以即使有一个额外的实现添加的std::string::size重载,它也会起作用吗? 最佳答案 使用“正确的”类型并不能使事情变得更好:除了virtual函数外,标准C++库中的所有函数都可以有额外的参数,只要它们是默认的。由于函数也可以用额外的重载声明(同样virtual函数除外),您最终可能会尝试为重载集分配一个变量。因此,代码不可移植,并且无法通过使用某种

c++ - 具有不同参数的 std::functions 的集合

我正在尝试编写一个简单的调度程序,用户代码可以将回调附加到它。每个事件都有一个已知的签名,用户代码需要使用正确的数字和参数类型来调用调度。这是由可变参数管理的。但是,不接受freestandingInt,因为vector的类型不正确。如何使其通用?遵循一个最小的例子voidfreestanding(){std::cout>listeners;}Event;templatevoiddispatch(inteventNr,Args&&...args){for(autolistener:events[eventNr].listeners){std::functionf(std::bind(l

c++ - std::function 和 shared_ptr

我使用Loki的Functor有一段时间了,最​​近我问了一个question关于它(仍然没有答案......)有人告诉我使用std::function,但我更喜欢Loki的Functor实现,因为它也可以使用各种指针作为参数(例如std::shared_ptr)。structToto{voidfoo(intparam){std::coutptr=std::make_shared();Loki::Functorfunc(ptr,&Toto::foo);func(1);}有没有办法用std::function做到这一点? 最佳答案 使

c++ - cstdint : No member named xxx in global namespace 中的错误

什么会导致这些错误?我在Xcode中添加了一个空项目,在HeaderSearchPaths中添加了/usr/local/lib,并添加了一些opencv库。建筑给出了这些错误:更新我的系统上确实安装了stdint.h。我在OS10.9上运行,所以像int_least16_t这样xcode在全局命名空间中找不到的类型似乎已定义。typedefint16_tint_least16_t;。find/Applications/Xcode.app-namestdint.h/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.p