草庐IT

FUNCTION_NAME

全部标签

c++ - 错误 LNK2019 : unresolved external symbol referenced in function main

我正在尝试用C++运行我的简单汇编代码。我只有两个文件“.cpp”文件和“.asm”文件。编译时出现错误(见下文)。如果有人能提供帮助,我将不胜感激...:)这是我的“main.cpp”文件#includeusingnamespacestd;extern"C"intGetValueFromASM();intmain(intargc,char*argv[]){cout我还有一个简单的“asm.asm”文件.codeGetValueFromASMprocmovrax,3254retGetValueFromASMendpend尝试构建时出现此错误:1>main.obj:errorLNK201

c++ - 为什么不允许使用 "second C linkage of overloaded function"?

我将我的C++dll转换为Cdll:#ifdef__cplusplusextern"C"{#endifMY_EXPORTintmy_func();MY_EXPORTvoidmy_func(intn);#ifdef__cplusplus}#endif没有externC声明一切正常。有了这个声明,我得到了errorC2733:secondClinkageofoverloadedfunction'my_func'notallowed为什么不允许从C风格的dll导出重载函数? 最佳答案 C不允许重载函数。那就是C不支持重载。这是C++的一个

C++ 函数名称分解 : What does this name suffix mean?

当我反汇编Chromium二进制文件时,我注意到有一些函数以这种模式命名:_ZN6webrtc15DecoderDatabase11DecoderInfoD2Ev.part.1如果我把这个字符串给c++filt,输出是webrtc::DecoderDatabase::DecoderInfo::~DecoderInfo()[克隆.part.1]那么这个.part.1后缀的真正含义是什么?如果它表明同一个函数有多个拷贝,他们为什么需要那个?是因为位置独立的要求吗?我使用g++作为编译器。 最佳答案 它表示析构函数是partialinli

C++ 为什么当它们 100% 看起来匹配时会出现错误 "no matching function"?

我不明白为什么我会收到一条错误消息,指出我的函数与我定义的模板函数不匹配。在我看来,它们看起来完全一样。这是我调试中的错误:错误:没有匹配函数来调用'mergesort'newVec=mergesort(vec.begin(),vec.end());所以我可以学习和编写更好的通用函数和模板,我需要更改什么才能消除该错误?(需要说明的是,我并不是在寻求有关我的归并排序算法的帮助-我知道它有问题,但我会解决它们。)#include#includeusingnamespacestd;templatevectormergesort(typenamevector::iterator,typena

c++ - 用于收集可调用对象的 std::function 的替代方法

除了求助于std::function之外,还有其他方法可以存储可调用对象的同类集合吗?即,替换以下代码中的类型TusingT=std::function;std::vectorv{some_lambda,some_fn_ptr,some_pmf,some_functor};还有别的吗?当将单个可调用对象作为参数传递给高阶函数时,我尽可能使用模板来避免std::function的开销。但是对于收藏,我不知道有什么可以做的。 最佳答案 直接类型减少开销的最大来源是内联函数的能力。在重复应用的紧密循环中,有时可以对内联函数进行矢量化或以其

c++ - 右值引用绑定(bind)到 std::function 类型的左值

为什么下面的代码在(@)处没有编译错误?我认为lamb是左值,因此它不会绑定(bind)到右值引用。usingFunctionType=std::function;usingIntType=int;structFoo{voidbar(FunctionType&&){}voidbaz(IntType&&){}};Foofoo;foo.bar([](){});//OKautolamb=[](){};foo.bar(lamb);//(@)Nocompilationerror?!foo.baz(5);//OKinti=5;foo.baz(i);//Error 最佳答

c++ - 从自身内部替换 std::function(通过 move 赋值到 *this?)

是否可以用另一个std::function替换一个std::function?以下代码无法编译:#include#includeintmain(){std::functionfunc=[](){std::cout可以修改编译吗?现在的错误消息是:'this'wasnotcapturedforthislambdafunction-我完全理解。但是,我不知道如何捕获func的this指针。我想,它甚至不是lambda中的std::function吧?!如何做到这一点?背景:我想要实现的是:在给定std::function的第一次调用中,我想做一些初始化工作然后替换具有优化功能的原始功能。我

c++ - 对常量对象 C++ 感到困惑

我对C++中的常量对象感到困惑当我们传递了常量对象/常量对象的引用时,是否意味着我们无法编辑该对象的属性值?或者如果它不是什么意思或constant,那是“引用”对象或“属性”同样当我们返回一个常量对象时像这样声明函数return_typefunction_name(parameters)const{}const关键字在函数的末尾是语法吗?以及为什么如果我们返回一个const对象,它不应该像下面这样constreturn_typefunction_name(parameters){}抱歉,如果这是一个菜鸟问题;) 最佳答案 这个语法

c++ - 'more than one instance of overloaded function "sqrt“匹配参数列表”怎么办?

我的代码在for循环中出错,for(j=3;j:morethanoneinstanceofoverloadedfunction"sqrt"matchestheargumentlist.我该如何解决?#include//determineifnumberisprimeboolisPrime(longn){intj,num=0;{if(num 最佳答案 尝试:for(j=3;j(num));j+=2)发生的事情是包含3个不同的definitionsofsqrt并且编译器不知道您要使用哪个。

c++ - Lambda 和 std::function

我正在努力学习C++11和所有出色的新功能。我有点卡在lambda上。这是我能够开始工作的代码:#include#include#include#include#includeusingnamespacestd;templatevectorfindMatches(vectorsearch,Funcfunc){vectortmp;for(autoitem:search){if(func(item)){tmp.push_back(item);}}returntmp;}voidLambdas(){vectortestv={1,2,3,4,5,6,7};autoresult=findMatch