草庐IT

标准ACL

全部标签

c++ - 如何在标准 C++11 中创建 shared_lock 或 upgrade_lock?

新标准std::shared_lock我非常想念模板类。在Boost.Thread中有boost::shared_lock,甚至boost::upgrade_lock存在。为什么,没有std::shared_lock和std::unique_lock在C++11中?如何获得与boost::shared_lock类似的行为?有,但在纯C++11中?我正在考虑使用boost::shared_lock,但这没有多大意义,因为std::mutex没有lock_shared()成员。而且,没有诸如std::shared_mutex之类的。. 最佳答案

c++ - 标准::线程 C++。更多线程相同数据

我使用的是VisualStudio2012和C++11。我不明白为什么这不起作用:voidclient_loop(bool&run){while(run);}intmain(){boolrunning=true;std::threadt(&client_loop,std::ref(running));running=false;t.join();}在这种情况下,线程t的循环永远不会结束,但我明确地将running设置为false。run和running有相同的位置。我试图将running设置为单个全局变量,但没有任何反应。我也试图传递一个指针值,但什么也没有。线程使用同一个堆。我真的不

c++ - C++标准库中有没有类似于没有成员的struct的类型?

有时需要将没有任何数据的虚拟值传递给某些模板。例如:templatestructBoundaryConditions{Xx;Yy;BoundaryConditions(typenameX::initxi,typenameY::inityi):x(xi),y(yi){...}};我们可能希望实现不带任何参数的自由边界条件。通过类型检查实现这样的事情非常容易:structNothing{};Nothingnothing=Nothing();structFree{typedefNothinginit;...};BoundaryConditionsfoo(nothing,100);所以我的问题

c++ - 如何更改 C++ 标准库中堆中的最大元素?

如果我有一个最大堆,并且如果我需要更改最大元素,则归结为单个向下冒泡算法。有什么方法可以通过C++标准库实现这一点,而无需手动编写算法代码?我理解它应该等同于pop_heap+push_heap,但这是2个冒泡操作而不是一个。那么-这种向下冒泡算法是通过库API公开的吗? 最佳答案 如果你愿意在你自己的容器v上调用std::pop_heap(),那么你可以先v.push_back()在弹出堆之前容器上的“修改”元素。然后,收缩v。//Preconditionisthatvisalreadyaheap.voidchange_max_e

c++ - 模板类方法不会导致错误——这是标准的一部分吗?

当我使用g++--std=c++98-Wall-Werror-WpedanticTest.cc编译以下内容时,没有错误。templatestructTemplateClass{T*ptr;TemplateClass(T*p):ptr(p){}intfoo(){returnptr->bar();}};structExampleClass{};intmain(){TemplateClassx(newExampleClass());}我预计编译器会提示ExampleClass没有实现方法bar。但看起来它只会在我实际使用方法foo时才会提示。我能否在任何C++98和C++11兼容编译器上依赖

c++ - 有没有标准的删除仿函数?

我正在寻找一个删除其参数的仿函数:templatestructdelete_functor{voidoperator()(T*p){deletep;}};std、tr1或boost中是否有类似的东西? 最佳答案 C++0x将添加std::default_delete到标准库以支持std::unique_ptr。它实际上具有与您的delete_functor相同的功能,但也专门用于为数组类型对象调用delete[]。 关于c++-有没有标准的删除仿函数?,我们在StackOverflow上

C++ 生成标准构造函数

我经常发现自己编写的是非常简单的类,而不是C风格的结构。它们通常看起来像这样:classA{public:typemA;typemB;...A(typemA,typemB,...):mA(mA),mB(mB),...{}}这是一种明智的做事方式吗?如果是,我想知道是否有任何第三方插件或任何方便的快捷方式来自动为构造函数构造文本(例如,采用突出显示或现有的成员定义,用逗号替换分号,将所有内容移动到同一行,...)?谢谢 最佳答案 是的,只需使用普通聚合:structA{typemA;typemB;...};用法:Ax={mA,mB,.

c++ - 如何告诉 scons 使用 C++11 标准

我没找到如何告诉scons接受c++11标准:SConstruct文件:env=Environment(CPPPATH='/usr/include/boost/',CPPDEFINES=[],LIBS=[],SCONS_CXX_STANDARD="c++11")env.Program('Hello',Glob('src/*.cpp'))cpp文件:#includeclassA{};intmain(){std::cout调用scons时的错误信息:scons:ReadingSConscriptfiles...scons:donereadingSConscriptfiles.scons:B

c++ - 为什么标准 C++ 库中的某些标识符很短?

为什么有些C++名称很短,有时很难理解,如strcmp,cout,cin等。但是在Java等其他语言中名字都不短。它能节省时间、内存还是什么? 最佳答案 这主要适用于从C“继承”的标准C++库部分。在C语言的C89之前的标准中,外部标识符的重要部分被限制为6个字符;允许链接器忽略剩余的字符。这就是标准C库将标识符长度限制为6个字符的原因。C++并入了那个库“批发”,连同有些神秘的标识符。 关于c++-为什么标准C++库中的某些标识符很短?,我们在StackOverflow上找到一个类似的

不符合国际安全标准:策略未遵循如ISO/IEC 27001等国际标准

不符合国际安全标准:策略管理存在的问题及解决方法随着互联网的飞速发展以及企业对数据安全和隐私保护需求的不断增加,国际信息安全标准化组织(ISO/IEC27001)制定了一套完善的信息安全管理规范体系来帮助企业有效控制风险、提高安全防护能力。然而在实际应用中我们发现许多企业的网络防火墙上存在着与ISO/IEC27001标准不符的策略问题;这类问题的存在使得企业无法达到预期的网络安全防护效果。本文将对这些问题进行分析并提出相应的解决建议以助于企业在网络防火墙政策方面实现国际化安全保障需求。1.策略未按照国际安全要求进行制定和审核很多公司的网络安全人员没有严格按照ISO/IEC27001的流程和要求