草庐IT

Block-scoped

全部标签

c++ - 使用 std::string 在 switch-case block 中返回字符串常量

注意:这不是关于使用字符串来选择switch-caseblock中的执行路径。C++中的一个常见模式是使用switch-caseblock将整数常量转换为字符串。这看起来像:charconst*to_string(codescode){switch(code){casecodes::foo:return"foo";casecodes::bar:return"bar";}}但是,我们是在C++中,所以使用std::string更合适:std::stringto_string(codescode){switch(code){casecodes::foo:return"foo";caseco

c# - 关于 catch block 中 catch 语句顺序的问题 - 特定于编译器或语言标准?

我目前正在使用VisualStudioExpressC++2008,并且对catchblock排序有一些疑问。不幸的是,我在互联网上找不到答案,所以我向专家提出这些问题。我注意到除非将catch(...)放在catchblock的末尾,否则编译将失败并出现错误C2311。例如,以下将编译:catch(MyException){}catch(...){}而以下不会:catch(...){}catch(MyException){}一个。请问这是在C++语言标准中定义的,还是微软编译器严格的问题?C#和Java也有相同的规则吗?顺便说一句,我还尝试制作一个基类和一个派生类,并将基类的catc

c++ - 在简单的情况下使用 scoped_ptr 是否有点矫枉过正?

我在像这样的小函数中使用scoped_ptr。这样我就不必调用delete了。这是这种用法的矫枉过正吗?我的团队成员更喜欢原始指针和删除。如果这恰好用在非常关键的路径中,那么使用scoped_ptr的成本是多少?这不应该是内联的并且完全等同于在优化的二进制文件中使用普通删除吗?voidmyfunc(){boost::scoped_ptrobjptr=someFactory::allocate();callsomeotherfunc(objptr.get());} 最佳答案 我不确定对性能的影响,但是在这里使用scoped_ptr确保

c++ - 应该使用哪个 header 来使用 scoped_ptr

我想在我的C++应用程序中使用智能指针。使用stdscoped_ptr应该包含哪个头文件? 最佳答案 标准C++库中没有scoped_ptr。全部C++11smartpointers在标题中.如果你想要boost::scoped_ptr那么你需要boost/scoped_ptr.hpp. 关于c++-应该使用哪个header来使用scoped_ptr,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

c++ - 什么是 C++ 中头文件的保护 block ?

我正在尝试使用Code::BlocksIDE创建一个C++类,并且有一个名为“Guardblock”的字段。我进行了搜索,但未能找到任何有用的信息。这个字段是做什么用的?谢谢。 最佳答案 保护block用于防止同一编译单元(c++文件)多次包含头文件。它们看起来像这样://Foo.h#ifndefINCLUDE_FILE_NAME_HERE_H_#defineINCLUDE_FILE_NAME_HERE_H_classFoo{};#endif如果将同一个文件包含多个文件,最终会出现多重定义错误。在小型项目中不需要使用包含保护,但在任

C++ 错误 : ‘_mm_sin_ps’ was not declared in this scope

我正在尝试对将函数应用于数组的不同方法进行基准测试。为什么是https://software.intel.com/sites/landingpage/IntrinsicsGuide/#expand=3260,2124,4779,4779&cats=Trigonometry&text=_sin_mm_sin_ps在我的范围内未知,但_mm_sqrt_ps是?我如何让它为人所知?并编译无误。#include#include#include#include#include#include#include"immintrin.h"#includeintmain(){std::coutdis(-

c++ - 以二进制模式从文件中读取 block 到缓冲区并将该缓冲区写入另一个文件

我正在努力实现这样的目标:while(ifstreamhasnotbeenentirelyread){readachunkofdataintoabufferthathassizeBUFLENwritethisbuffertoostream}起初我试图通过使用ifstream.eof()作为我的while条件来实现这一点,但我听说这不是可行的方法。我一直在查看std::ios::ifstream的其他功能,但无法弄清楚还有什么用。PS:我正在使用缓冲区,因为正在传输的文件可能会变得非常大。 最佳答案 iostream类负责所有必要的缓

c++ - 在析构函数中尝试 Catch block

在阅读HurbSutter的“MoreExceptionalC++”时,我偶然发现了以下代码://Example19-5:Alternativerightsolution//T::Close(){//...codethatcouldthrow...}T::~T()/*throw()*/{try{Close();}catch(...){}}我的理解是,这不是一个好主意。因为,如果在堆栈展开期间由于异常调用了T析构函数,然后Close()抛出异常,那么这将导致调用Terminate()。有人可以阐明这一点吗?提前致谢。 最佳答案 Myu

c++ - 代码块注释掉整个 block

我正在使用适用于C++的CodeblocksIDE,我尝试用谷歌搜索它,但找不到答案。如何在Codeblocks中注释掉一段代码?例如在Eclipse中它的ctrl+7。 最佳答案 Ctrl+Shift+C评论选中的blockCtrl+Shift+X取消注释。 关于c++-代码块注释掉整个block,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5288077/

c++ - QScopedPointer、boost::scoped_ptr - 为什么提示类型不完整?

我有一个c-Structure,我想将它嵌入到一个cpp类中而不破坏我的全局命名空间,所以我不想包含c-header。这就是为什么我想使用具有前向声明结构名称的智能作用域指针(QScopedPointer或boost::scoped_ptr)。我不明白的是上述两个在编译时失败的作用域指针的实现:boost:errorC2027:useofundefinedtype'xxx'templateinlinevoidchecked_delete(T*x){//intentionallycomplex-simplificationcausesregressionstypedefchartype_