草庐IT

外部化

全部标签

c++ - 模板外部(与外部模板相比)

我遇到过这样的代码:templateexternvoidf(Ta);在.h文件中,f()在cpp文件中定义了几个特定的​​T。我找不到关于此语法的任何解释。我已经看到在c++11中引入了extern模板,但它们似乎具有不同的语法...有人可以详细说明吗?谢谢 最佳答案 extern在这里是多余的。这意味着从此模板实例化的函数具有外部链接。这是普通的extern,您可以将其应用于普通函数定义以指示它具有外部链接。这也是多余的,因为默认情况下函数具有外部链接。所以和templatevoidf(Ta);您已经提到在.cpp文件中定义了几个

c++ - 将外部 C++ 库添加到 CLion 项目

我在Mac上使用CLion,但我无法理解如何将外部库添加到我的项目中。那么,如何将外部库添加到C++项目? 最佳答案 手动编辑CMakeLists.txt,在末尾添加以下行,并为您的系统提供正确的路径和正确的项目名称。此配置适用于Ubuntu17.04工作站。include_directories("/usr/include/SDL2")target_link_libraries(ProjectName"/usr/lib/x86_64-linux-gnu/libSDL.so")希望这对您有所帮助。您可以使用以下方法对其进行测试:#i

c++ - 将目录中存储的所有外部库添加到 Qt 项目中

有没有一种方法可以从给定文件夹中添加所有库,而无需将每个库都添加到Qt项目文件中的LIBS变量中。我已将所有库(DLL(win)或SO(unix))与头文件一起放在一个目录(MYLIBS)中,并尝试了如下操作:LIBS*=-L$$PWD/MYLIBS-l*INCLUDEPATH+=$$PWD/MYLIBSDEPENDPATH+=$$PWD/MYLIBS它无法使用错误消息cannotfind-l*。qmake是否可以在创建Makefile时使用通配符? 最佳答案 您可以使用files,basename和replace获得所需功能的功能

c++ - 如何对 .exe 附带的外部文件进行编码

因此,我使用visual2012创建了一个应用程序,用于加载图像和着色器(纯文本)。但实际上,我不希望人们打开图像和着色器然后乱搞。我怎样才能将所有这些外部文件压缩成一个或多个文件,但仍可由可执行文件读取? 最佳答案 这个问题很难得到权威性的回答,因为如果没有防篡改硬件,基本上不可能保护内容免受老练的黑客攻击。但是考虑到一个简单的威慑就足够了,那么embeddingyourcontentasresourcesintheexecutable怎么样??请注意,可以免费使用一些工具从.exe文件中提取资源。或者,您可以加密每个文件并在您的

c++ - 外部内联函数在所有翻译单元中必须具有相同的地址。这到底是如何实现的?

根据标准,外部内联函数在所有翻译单元中必须具有相同的地址。这是如何在编译器中实现的?我的意思是当我编译一些翻译单元时,我不知道其他TU会是什么样子。那么我怎样才能在所有地方使用相同的地址呢? 最佳答案 这取决于实现,但通常由链接器解决。每个编译的翻译单元将生成一个包含函数拷贝的目标文件,以某种方式标记,以便链接器知道它应该期望(并接受)拷贝。链接器将包含其中一个,丢弃其他,并解析对该函数的任何引用。 关于c++-外部内联函数在所有翻译单元中必须具有相同的地址。这到底是如何实现的?,我们在

c++ - 内联函数和外部链接

在这个答案中https://stackoverflow.com/a/4193698/738811上面写着“默认情况下,内联函数具有外部链接”。但是,默认情况下不可能链接到内联的内容。那么说内联函数具有外部链接有什么意义呢? 最佳答案 名称的链接与其定义的位置或方式无关,仅与名称可用于指代特定对象或函数的位置有关。声明一个函数内联并不强制它被内联;它只是放宽了一个定义规则,以允许在使用它的每个翻译单元中都有一个定义(并且在每个调用它的翻译单元中都需要一个定义),以便更容易内联。如果编译器决定不内联对它的特定调用,或者如果您获取它的地址

c++ - 如何为在 main() 外部和内部声明的变量分配内存

我注意到在处理一些大型数组(如1000x1000的double)时,如果我在main()内部声明数组,我的程序会耗尽内存,但如果我在main()外部声明数组,这似乎永远不会发生)即使对于更大的阵列。有人可以解释一下区别是什么吗? 最佳答案 当一个变量在一个函数中声明时(在你的例子中,main),它被分配在堆栈上,如果它太大(例如,一个大数组),你会遇到stackoverflow.在所有函数之外定义的变量是静态分配的。它的生命周期持续到程序终止。 关于c++-如何为在main()外部和内部

c++ - 我应该将 "using namespace"放在 C++ 中的命名空间内部还是外部

我的导师在代码审查中这样修改了我的代码:usingnamespaceA;//definedinotherfilesnamespaceB{//dosomething}而不是像这样:namespaceB{usingnamespaceA;//dosomething}将using命名空间放在命名空间之外是否有任何技术原因? 最佳答案 在头文件中,您不应该在全局范围内使用usingnamespaceN;指令。它将在所有客户端代码上强制使用来自N的大量标识符。但是将它放在命名空间X中也可以。请记住,执行usingnamespaceX;的客户端代

c++ - 匿名 namespace 内部/外部的 Typedef?

在.cpp文件中,这两种方式有什么区别/偏好吗?//filescopeoutsideanynamespaceusingX::SomeClass;typedefSomeClass::BufferMyBuf;速度/速度namespace{//anonymoususingX::SomeClass;typedefSomeClass::BufferMyBuf;} 最佳答案 我会说第二种用法相当不常见,至少在我目前看到的代码中是这样(而且我已经看到相当多的C++代码)。您能解释一下第二种技术背后的原因吗?您通常会在C++实现文件中使用匿名命名空

防止调度程序中的月份视图上的外部事件下降

这是一个很容易在标准演示中看到的问题,用于全卡伦多-安排仪,显示外部事件drag-n-drop:https://fullcalendar.io/js/fullcalendar-scheduler-1.6.2/demos/external-dragging.html将事件正确放在日历上,需要从左侧抓住事件并将其放在正确的房间和时间上。但是,这些房间均未在一周或一个月的观看次数中显示。问题在于,您仍然可以在每周和月份的视图中将事件拖到日历上,但是无法在这些视图中选择房间,因此您只是在创建错误。尝试这个。进入月视图,将事件拖到日历上,并显示您丢弃它的地方。现在回到一天或3天的观看次数,您刚刚丢弃的活