草庐IT

outside_scope

全部标签

c++ - 带有 Cygwin 1.7 的 GoogleTest 1.6 编译错误 : 'fileno' was not declared in this scope

带有Cygwin1.7的GoogleTest1.6:“fileno”未在此范围内声明在EclipseCDT中对Factorial()函数进行简单测试时出现错误消息:Invoking:CygwinC++Compilerg++-std=c++0x-DGTEST_OS_CYGWIN=1-I"E:\source\gtest-1.6.0\include"-O0-g3-Wall-c-fmessage-length=0-MMD-MP-MF"src/challenge.d"-MT"src/challenge.d"-o"src/challenge.o""../src/challenge.cpp"Infi

c++ - 为什么 boost 没有 make_scoped()?

Boost的make_shared()函数promise在尝试创建shared_ptr时是异常安全的.为什么没有make_scoped()相等的?是否有通用的最佳做法?这是来自boost::scoped_ptrdocumentation的代码示例这对我来说似乎不安全:boost::scoped_ptrx(newShoe);这行代码会依次完成这三件事:为Shoe分配堆内存调用Shoe的构造函数调用boost::scoped_ptr的构造函数如果Shoe的构造函数抛出异常,内存将被泄露。(参见R.MartinhoFernandes的回答)scoped_ptr不会处理释放,因为它还没有被构造

C++ 错误 : Sleep was not declared in this scope

我在Ubuntu中使用带有codeBlocks的C++,在GCC4.7中boost1.46[yield_k.hpp]我得到这个编译时错误:error:Sleepwasnotdeclaredinthisscope代码:#includeusingnamespacestd;intmain(){cout如何解决此错误?我希望程序挂起1秒。 最佳答案 Sleep是一个Windows函数。对于Unix,请考虑使用nanosleep(POSIX)或usleep(BSD;已弃用)。一个nanosleep示例:voidmy_sleep(unsigne

c++ - 为什么 Alexandrescu 不能使用 std::uncaught_exception() 在 ScopeGuard11 中实现 SCOPE_FAIL?

这个问题在这里已经有了答案:Scope(failure)inC++11?(2个回答)关闭9年前。毫无疑问,很多人都熟悉Alexandrescus先生的ScopeGuard模板(现在是Loki的一部分)和这里介绍的新版本ScopeGuard11:http://channel9.msdn.com/Shows/Going+Deep/C-and-Beyond-2012-Andrei-Alexandrescu-Systematic-Error-Handling-in-C这里有来源:https://gist.github.com/KindDragon/4650442在2012年及以后的c++演讲中

c++ - 我在哪里可以为我的 C++ 项目找到一个好的 Scope Guard 实现?

我最近刚刚了解了ScopeGuardC++习语。不幸的是,我找不到任何好的实现。谁能给我指点C++中一些好的和可用的ScopeGuard实现?谢谢,博达·赛多。 最佳答案 原始的ScopeGuard类包含在thisDr.Dobb'sarticle中AndreiAlexandrescu和PetruMarginean。一个稍微改进的版本,与JoshuaLehrer的一些更改可用here.(Lehrer的版本是我在项目中使用的版本。)它也包含在Loki中。图书馆。Boost现在有一个ScopeExit比ScopeGuard更强大的库(因为

c++ - 内联方法 : inside vs outside class definition

如果你有一个方法并且你想给编译器一个提示,内联它是个好主意,你目前有两种解决方案。第一个是在声明类时定义方法:classVector{private:double*data_;double*size_;double*capacity_;public:double&operator[](intk){returndata_[k];}...}由于这种方法可能会降低可读性,另一种解决方案是使用inline关键字并在类外定义方法:classVector{private:double*data_;double*size_;double*capacity_;public:inlinedouble&o

c++ - "Default member initializer needed within definition of enclosing class outside of member functions"- 我的代码格式不正确吗?

#includestructfoo{intx{0};foo()noexcept=default;voidf()noexcept(noexcept(std::declval())){}};intmain(){}liveexampleongodbolt上面的代码可以用我测试过的任何版本的g++,以及3.6到3.9.1的clang++编译,但是不能用clang++4.0.0编译:test.cpp:6:5:error:defaultmemberinitializerfor'x'neededwithindefinitionofenclosingclass'foo'outsideofmemberf

c++ - protected 成员是派生类中的 "not declared in this scope"

这个问题在这里已经有了答案:accessingprotectedmembersofsuperclassinC++withtemplates[duplicate](2个回答)关闭8年前。#include#includetemplateclassBase{protected:std::vectordata_;};templateclassDerived:publicBase{public:voidclear(){data_.clear();}};intmain(intargc,char*argv[]){Derivedderived;derived.clear();return0;}我无法编

node.js - 如何将 NPM 包迁移到组织 @scope

NPM最近为模块引入了@scopes/organizations。有没有将现有模块迁移到组织的好方法?是否有任何工具可以为大量包自动化它?NPM是否支持重定向,以便其他软件仍然可以使用旧名称,但会收到应该更新的通知? 最佳答案 您可以从以下位置更改您的package.json:"name":"project-name"到:"name":"@scope/project-name"并发布包:npmpublish--access=public更新:--access=public需要参数才能使作用域包公开-否则默认情况下它将是私有(priv

node.js - 如何解决 'npm should be run outside of the node repl, in your normal shell'

我是node.js的新手。我从officialsite下载并安装了node.js安装程序.我已在PATH环境变量中添加了此安装程序文件夹,并且能够运行程序。但是当我尝试在Node控制台中使用npm安装一些包时,它显示错误npm应该在Noderepl之外运行,在你的普通shell中。我也在一个单独的控制台上尝试过。但它显示命令未找到,尽管我在环境变量中添加了Node。 最佳答案 对于Windows用户,从命令提示符(cmd.exe)运行npm命令,而不是Node.Js(node.exe)。所以您的“普通shell”是cmd.exe。(