草庐IT

load_functions

全部标签

c++ - C++中的 'Exported function'是什么意思?

最近我开始使用c++。我听说过exportedfunctions但不确定它是什么意思。所以我的问题是:什么是导出函数?普通函数和导出函数有什么区别吗?如果是,那是什么?它与dll有什么关系? 最佳答案 whatisexportedfunction?当您使用模块(代码片段)进行编程时,您需要在某个模块中调用在其他模块中定义的函数。导出是相对于那个过程。在C/C++中,如果你想声明一个函数来使用它而不在源文件中定义它,你应该使用关键字“extern”。在定义该函数的文件中,您无需做任何特别的事情,默认情况下,全局范围内的内容会自动导出。

c++ - std::atomic::load 的内存排序行为

我是否错误地假设atomic::load也应该充当内存屏障以确保所有先前的非原子写入将对其他线程可见?举例说明:volatileboolarm1=false;std::atomic_boolarm2=false;booltriggered=false;线程1:arm1=true;//std::std::atomic_thread_fence(std::memory_order_seq_cst);//thiswoulddothetrickif(arm2.load())triggered=true;线程2:arm2.store(true);if(arm1)triggered=true;我预

c++ - 如何在不使用 C++0x 的情况下创建 lambda 函数来匹配 boost::function 参数?

如何使用boost或STL创建lambda函数以匹配中第三段代码中F期望的boost::function参数主?#include#includevoidF(inta,boost::functionf){std::cout我不能使用C++0x并且想避免创建几个单独的函数。如果有帮助,我可以使用boost::function以外的东西,我的首要任务是简洁地创建lambda。 最佳答案 #include//STL#include//Boost.Lambda#include//Boost.Pheonix#include//Boost.Phe

c++ - eclipse c++ 中的 "control reaches end of non-void function"警告但没有编译或运行时错误

这是我的代码:Composer&Database::GetComposer(stringin_last_name){for(inti=0;i想法是遍历Composer对象数组并返回对其last_name字段与“in_last_name”匹配的对象的引用。我明白警告在告诉我什么,即函数可能不会返回任何内容(如果用户提供了无效的姓氏)。我的问题是,我怎样才能避免这种情况?我尝试在for循环之后添加“return0”和“returnNULL”,但它无法编译。如果此方法什么也没找到,是否应该抛出异常? 最佳答案 您的函数被声明为返回一个Co

c++ - (Swig to python)导入错误:dynamic module does not define init function

我正在尝试通过swig将我的C++代码移植到Python。当我完成py、pyd、cxx和lib文件的构建时,在Python(命令行)下,我键入“模块Dnld”,它显示->导入错误:动态模块未定义初始化函数。以下是我的代码,进一步:添加我的构建步骤以避免误解,谢谢MarkTolonen文件->新建->项目->Windows控制台应用程序->选择DLL和空项目(无unicode)将我的SerialComm文件夹添加到项目中(包括DownloaderEngine.hSerial.hPortEnumerator.h等)。配置属性->c/c++->附加包含目录->C:\Python27\incl

c++ - 确定 "generic function"的返回类型

假设,我想开发一个通用库,它应该可用于类似数字的类型,包括double类型和用户定义类型。我现在面临的问题是我不知道如何像这样编写函数模板的返回类型:templateautotransmogrify(Tx)->???{usingstd::abs;returnabs(x)+2.0;}using声明使此函数模板的主体适用于原始类型,因为它们没有关联的命名空间(因此没有ADL)。但我希望transmogrify使用专门的abs函数,以防用户定义类型的作者提供他自己的abs函数。我不能简单地使用->decltype(abs(x)+2.0)因为这对double不起作用,因为std::abs不在范

c++ - eclipse CDT : How to manage multiple main() functions in a single C++ project?

我正在开始开发一个由多个模块组成的项目。我将使用专用的测试台验证这些模块中的每一个,每个模块都有它们的main()函数。我想避免为每个测试平台及其main()函数创建一个Eclipse项目。我读到了WorkingSets在我的项目中只显示与特定测试平台相关的文件的想法正是我所寻找的。但是,在构建阶段,Eclipse会继续构建所有项目文件,而不仅仅是当前的工作集文件。然后,由于多个main()函数,我遇到了链接器错误。如何将Eclipse配置为仅构建工作集的文件?是否有另一种方法可以在单个项目中分别构建多个程序,即应用程序及其组件测试平台? 最佳答案

c++ - 避免使用 DirectXMath XMStore/load

我以前做过OpenGL,现在正在学习一些DirectX11。新数学库中的一件事是存在用于vector和矩阵的加载/存储方法(例如http://msdn.microsoft.com/en-us/library/ee415635(v=vs.85).aspx)。对我来说,这让我很奇怪,当我想使用它们时必须存储/加载每个vector和矩阵-很多笨重的代码-我想知道是否有任何好的、干净的替代加载/存储过程? 最佳答案 你可以看看simplemath如果有帮助的话。它现在是DirectXTK的一部分.来自链接站点:WhywrapDirectXM

c++ - 为什么 std::function<boost::any ()> 在这种情况下不起作用?

我遇到过需要这种功能的情况:MoveOnlycreateMoveOnly();存储在这里:std::functionfactory=&createMoveOnly;据我所知,这应该可行,因为MoveOnly可以转换为boost::any使用支持boost.any移动语义的boost1.55,它不起作用。它会触发有关尝试在boost::any的持有者内部为MoveOnly使用已删除的复制构造函数的错误。但是正确选择了Boost.Any的顶级构造函数(它使用模板化的ValueType&&来转发参数)。也许问题出在std::function中。有什么提示吗? 最佳

c++ - std::vector of function pointers:不同的模板参数

为什么下面会编译std::vectorfunc_ptrs;但这不是std::vectorfunc_ptrs?在第二种情况下,我收到了那些丑陋的STL错误消息之一,所以我不打算将所有内容都放在这里,但在消息的末尾我得到了这个/usr/include/c++/4.8/bits/stl_construct.h:102:30:error:ISOC++forbidsincrementingapointeroftype‘int(*)(double)’[-fpermissive]for(;__first!=__last;++__first)这似乎暗示C++将类型int(double)转换为int(*