草庐IT

true_false

全部标签

c++ - 为什么在分配器中允许 `propagate_on_container_swap == false`,因为它可能导致未定义的行为?

注意:最初由MattMcnabb提问作为comment在WhycanswappingstandardlibrarycontainersbeproblematicinC++11(involvingallocators)?.标准(N3797)说如果progagate_on_container_swapAllocator内部是std::false_type如果所涉及的两个分配器比较不相等,它将产生未定义的行为。为什么标准会允许这样的构造,因为它看起来非常危险?23.2.1p9GeneralContainerRequirements[container.requirements.general

c++ - 添加 `noexcept(false)` 是否对代码有任何好处?

最近在我的代码中,我一直明确地在我知道会抛出异常的函数上编写noexcept(false),主要是为了阅读代码的人。但是,我想知道这是否会影响我的代码的行为或编译器解释它的方式。这有什么区别吗?注意:我知道析构函数是隐式的noexcept并且您必须指定noexcept(false)才能更改它,我想知道其他函数。 最佳答案 没有异常说明符和显式声明noexcept(false)是等效的,请参阅§15.4/12:Afunctionwithnoexception-specificationorwithanexception-specifi

c++ - 为什么 is_copy_constructible 在 MSVC12 中为 unique_ptr 返回 true

我原以为这个静态断言会触发:#include#includeintmain(){static_assert(std::is_copy_constructible>::value,"UPtrhascopyconstructor?");}但事实并非如此。使用MSVC12编译:Microsoft(R)C/C++OptimizingCompilerVersion18.00.31101forx64 最佳答案 static_assert应该触发,std::unique_ptr有一个隐式删除的复制构造函数,所以这是一个错误。这看起来与此错误报告有

c# - 来自 C# : C++ function (in a DLL) returning false, 的 C++,但 C# 认为这是真的!

我正在编写一个C#小应用程序,它调用C++API中的几个函数。我将C++代码构建到DLL中,C#代码使用DllImport调用API。(我正在为C++DLL使用.DEF文件,所以我不需要extern"C"。)到目前为止,API只有一个函数,目前它什么都不做:boolFoo(){returnfalse;}在C#中,我有以下内容:publicclassFooAPI{[DllImport("Foo.dll")]publicstaticexternboolFoo();}...boolb=FooAPI.Foo();if(!b){//Throwanexception}我的问题是,出于某种原因,b的

windows - 如何运行 Windows 命令并每次都返回 true?

我的问题很简单。我想运行一个在每次运行时始终以非零值退出的Windows命令。我无权访问命令本身,并且想在调用它时操纵退出代码。像这样:C:\>run.cmd||echo"OK"我怎样才能做到这一点?提前致谢。 最佳答案 在Windows命令行中,“echo”不被解释为命令,也不计算返回码。因此,您必须使用其他命令。对于您的情况,下面的代码就可以了:C:\>run.cmd||exit0; 关于windows-如何运行Windows命令并每次都返回true?,我们在StackOverflo

python - Windows subprocess.Popen 没有 shell=True 的批处理文件

我有一个运行lessc的函数(使用npminstall-gless安装):>>>importsubprocess>>>subprocess.Popen(['lessc'])Traceback(mostrecentcalllast):File"",line1,inFile"C:\Python27\lib\subprocess.py",line679,in__init__errread,errwrite)File"C:\Python27\lib\subprocess.py",line896,in_execute_childstartupinfo)WindowsError:[Error2]T

php - 为什么 $pear->packageExists() 在已安装的包上总是返回 false?

我安装了Mail(http://pear.php.net/package/Mail)pearinstallMail一切似乎都很好,但是以编程方式检查这个包:$pear=newPEAR_Registry();$enabled=$pear->packageExists('Mail');我总是失败(假)。有人可以给我任何建议吗?如果我再次尝试安装Mail,我会得到:pear/Mailisalreadyinstalledandisthesameasthereleasedversion1.2.0installfailed我的include_path设置:include_path=".;C:\Pr

c++ - IsIconic() 总是返回 false 而 OpenIcon() 从不打开窗口

平台:Windows764位。首先,WindowsAPIIsIconic()总是返回错误。窗口是最大化、正常还是最小化无关紧要(IsIconic()应返回true).该窗口属于另一个进程,已使用enumWindows()检索这是我的测试代码的一小段摘录。TCHARWndCaption[100];TCHARNewCaption[]=TEXT("MyWindowhandleisvalid");BOOLres;GetWindowText(MyHWND,WndCaption,100);SetWindowText(MyHWND,NewCaption);//Thisalwaysreturn0,no

node.js - MS Windows 10 : Error: Command failed: git -c core. longpaths=true 配置 --get remote.origin.url

我正在尝试在Windows机器上使用npmi安装我的项目依赖项。但是我遇到了这个错误:npmWARNaddRemoteGitError:Commandfailed:git-ccore.longpaths=trueconfig--getremote.origin.urlnpmWARNaddRemoteGitatChildProcess.exithandler(child_process.js:202:12)npmWARNaddRemoteGitatemitTwo(events.js:106:13)npmWARNaddRemoteGitatChildProcess.emit(events.

java - 文件.canWrite();文件.canRead();文件.canExceute();尽管我的文件/目录没有访问权限,但始终返回 true

需要检查我使用的文件/目录的权限//filePath=pathoffile/directoryaccessdeniedbyuser(inwindows)Filefile=newFile(filePath);file.canWrite();file.canRead();file.canExecute();所有三个都返回true但m无法删除任何文件/目录 最佳答案 你必须检查:SecurityManager.checkDelete(filepath);如JavaDoc中所述 关于java-文