草庐IT

first-class-functions

全部标签

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

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

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

jdk17新特性—— 密封类(Sealed Classes)

目录一、密封类(SealedClasses)的概述1.1、概述1.2、特性1.3、注意事项二、密封类(SealedClasses)代码示例2.1、密封类(SealedClasses)代码结构示例2.2、密封类(SealedClasses)代码示例三、密封类(SealedClasses)接口代码示例3.1、密封类(SealedClasses)接口代码结构示例3.2、密封类(SealedClasses)接口代码示例一、密封类(SealedClasses)的概述1.1、概述密封类和接口限制哪些其他类或接口可以扩展或实现它们。1.2、特性JDK15的JEP360:SealedClasses(Previ

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++ - 什么时候用 "class_name obj_name = func()"替换 "class_name obj_name{func()}"有意义?

在代码中我看到了以下结构:constclass_nameobj_name{func()};func()返回名为class_name的类的对象。所以,我想知道为什么不使用以下结构:constclass_nameobj_name=func(); 最佳答案 constclass_nameobj_name{func()};作者通过写上面的代码,试图遵循统一初始化语法(C++11引入),从而避免繁琐的解析和最令人烦恼的解析,即使是经验丰富的程序员也会意外陷入其中。他正试图将最佳实践灌输到他的大脑中,这样他就不会偶尔陷入上述解析问题,如下所述。

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

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

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++ - 在类(class)内任何时候已知的类(class)成员

我一直认为,如果我在类内部声明一个类的成员,那么这个成员在类的整个范围内都是已知的:classX{public:X(inta):v_(a){}private:intv_;//eventhoughv_isdeclaredhereI'musingitinctorwhichisabovethisline};所以这对我来说很有意义。无论如何,这不是因为我得到了v_未知的错误classX{public:X(decltype(v_)a):v_(a)//erroronthisline,compilerdoesn'tknowv_{}private:intv_;};很乐意了解原因。我正在使用英特尔编译器