草庐IT

namespace-package

全部标签

c++ - 将 namespace 添加到具有 C header 的 C++ 实现

我们有一个包含C和C++代码的大型项目。对于每个C++实现,除了C++header之外,我们通常还提供一个Cheader以允许功能也可用于.c文件。所以,我们的大部分文件看起来像这样:foo.hpp:classC{intfoo();};foo.h:#ifdef__cplusplusextern"C"{typedefstructCC;//forwarddeclarations#elseclassC;#endifintfoo(C*);//simplyexposesamemberfunctionC*utility_function(C*);//somefunctionality*not*in

C++:带有 packaged_task 的核心转储

我从http://en.cppreference.com/w/cpp/thread/packaged_task中的部分代码中复制了一个奇怪的核心转储,#include#include#includevoidtask_lambda(){std::packaged_tasktask([](inta,intb){returnstd::pow(a,b);});std::futureresult=task.get_future();task(2,9);std::cout我明白了terminatecalledafterthrowinganinstanceof'std::system_error'w

c++ - 带有模板函数和 'using namespace' 的 VS2008(+?) 编译器错误

我发现某些代码(如下)的这种奇怪情况无法在VisualStudio2008下编译,并在第12行产生“错误C2872:‘歧义’:模糊符号”。删除最后一行的usingnamespaceRequiredNamespace修复了错误,但我希望将usingnamespace放在文件末尾应该没有效果。它还依赖于作为模板函数的AnotherFunction,所以我希望编译器在错误的范围内生成模板函数,或者在这样做之前没有重置正在使用的命名空间列表。相同的代码在GCC下编译。两个编译器似乎都在usingnamespaceNamespace定义之后为TemplatedFunction生成代码,至少据我所

关于package.json中版本锁定的方法和问题解决

前置知识:先了解一下package.json和package-lock.json的关系和区别,请看这篇文章然后我们来说一下改怎么锁定版本?首先肯定是要把package.json中的^这个符号去掉,但是如果你只去掉package.json中的^那就太天真了,一定有大坑等着你,因为我们实际上是用的package-lock.json中的版本。【没错,我就刚从大坑中出来。。】在没有锁定版本之前,我们的项目是这样的如果只去掉package.json中的 ^,而不修改package-lock.json文件,那么一般不会出现问题,因为到其他环境也是按照package-lock.json安装。但是,有几种情况

“是否需要将 package-lock.json 提交到 Git?“

在JavaScript项目中,package-lock.json是一个重要的文件,用于记录项目依赖的确切版本信息。这个文件的存在对于确保项目在不同环境中的一致性非常重要。但是,是否需要将package-lock.json文件提交到Git仓库中,这是一个值得讨论的问题。首先,让我们了解一下package-lock.json文件的作用。当你使用npm或者Yarn等包管理工具来安装依赖时,它们会自动生成一个package-lock.json文件。这个文件记录了每个依赖包的确切版本号以及其依赖关系树。这样,当你的项目被其他人或者其他环境克隆时,他们可以使用相同的依赖版本,确保项目的行为一致性。那么,是

c++ - CMake 为 FIND_PACKAGE 设置起始路径?

我正在使用通过Homebrew在我的Mac上安装的较新版本的openssl,想知道是否有办法为CMAKE的FIND_PACKAGE函数设置启动路径?现在,当我尝试使用FIND_PACKAGECMAKE时,发现我的操作系统使用的是旧版本的openssl。我目前在我的CMakeLists.txt中使用它SET(OPENSSL_LIB_DIR/usr/local/Cellar/openssl/1.0.2f/lib)INCLUDE_DIRECTORIES(/usr/local/Cellar/openssl/1.0.2f/include)TARGET_LINK_LIBRARIES(mangaMe

c++ - 对于 WIN32 API 引入的预处理器 namespace 污染,是否有简单的一次性解决方案?

众所周知,包括通过为每个Win32API函数设置一个预处理器#define来污染C++中的所有命名空间,该函数可以采用多字节或UTF-16输入。一个例子是:#ifdefUNICODE#defineCreateFontCreateFontW#else#defineCreateFontCreateFontA#endif我已经使用nativeWin32API好几年了,但我快要放弃了!在任何不平凡的项目中,名称冲突足以让您脸色发青。拜托,哦,有人能想出一个解决方案,不需要我在事后根据具体情况#undef这样定义宏吗?我想在这导致任何问题之前采取平权行动错误。而且我一直使用Unicode/UTF

C++ namespace 混淆 - std::vs::vs 调用 tolower 时没有前缀?

这是为什么?transform(theWord.begin(),theWord.end(),theWord.begin(),std::tolower);-不起作用transform(theWord.begin(),theWord.end(),theWord.begin(),tolower);-不起作用但是transform(theWord.begin(),theWord.end(),theWord.begin(),::tolower);-有效theWord是一个字符串。我正在usingnamespacestd;为什么它使用前缀::而不是使用std::或什么都不使用?感谢您的帮助。

c++ - 可以包装或合并单独的 namespace 吗?

我似乎记得在某处看到有关将多个命名空间合并为一个方法的注释。现在,寻找所说的笔记我没有找到它们——即使使用搜索词组合、分组、合并和包装进行搜索,我也没有找到任何东西。也许我误解了我之前看到的内容。我没有这方面的具体应用,这只是一种好奇心,有点做作。但是,从两个namespace开始......namespacea{intfunc(){return1;}}namespaceb{intfunc(){return2;}}我一直在寻找语法来简单地将它们包装在另一个名称中——事后——(是的,我知道我可以用嵌套的方式重写它)或者将它们合并到一个新的空间中。但是,我确实发现,如果我添加到其中一个非常

MRO 3.4.0 with install.packages

R3.4.0的一般版本有一个错误,此后已修补3.4.0,也包含在3.4.1中,但显然尚未针对MRO3.4.0。何时将用于MRO的修复/补丁? 除了恢复到MRO3.3.3之外,什么工作是什么? 就目前而言,安装MRO3.4.0后,我无法安装任何软件包。这里对于R3.4.0的SO是类似的帖子,但并未解决MicrosoftR打开。这里是关于R3.4.0/1的错误修复的公告。该版本修复了R3.4.0发布后报告的一些小错误,其中包括尝试在Windows上安装软件包时遇到的问题。请注意,我也在女士开放论坛,但认为我可能更有可能在这里得到快速回应。谢谢,凯尔根据要求,这是我遇到的实际错误