草庐IT

c++ - 估计 C++11 中剩余的时间

我正在编写一个进度条类,它每隔n输出一个更新的进度条。滴答到std::ostream:classprogress_bar{public:progress_bar(uint64_tticks):_total_ticks(ticks),ticks_occured(0),_begin(std::chrono::steady_clock::now())...voidtick(){//testtoseeifenoughprogresshaselapsed//towarrantupdatingtheprogressbar//thatwaywearen'twastingresourcesprinti

C++11 从相同类类型的构造函数调用构造函数

有人告诉我,由于C++11的变化,以下内容是可能的:classSomeType{intnumber;public:SomeType(intnew_number):number(new_number){}SomeType():SomeType(42){}};但是当我尝试构建时出现错误:"SomeType"isnotanonstaticdatamemberorbaseclassofclass"SomeType"errorC2614:'SomeType':illegalmemberinitialization:'SomeType'isnotabaseormemberVisualStudio2

c++ - 为什么 C++11 标准中的 INVOKE 工具引用数据成员?

标准的$20.8.2描述了INVOKE工具,该工具主要用于描述如何在整个标准库中使用可变参数列表调用可调用对象:DefineINVOKE(f,t1,t2,...,tN)asfollows:—(t1.*f)(t2,...,tN)whenfisapointertoamemberfunctionofaclassTandt1isanobjectoftypeTorareferencetoanobjectoftypeTorareferencetoanobjectofatypederivedfromT;—((*t1).*f)(t2,...,tN)whenfisapointertoamemberfun

c++ - 具有 C++11 构造的映射函数

既是为了自学实现比简单的基本模板构造更高级的模板构造,又因为它们在很多情况下都很有用,我正在尝试使用c++11构造来实现函数式编程中常见的映射、过滤器和类似函数,例如decltype.我在创建我使用的编译器可以处理的函数原型(prototype)时遇到了问题,所以我不得不问你如何创建这样的东西:////Takesaniterable,appliesafunctiontoeveryelement,andreturnsavectoroftheresults//templateautomap(constT&iterable,Funcfunc)->std::vector{//bodysnipp

C++ 11 替代 pthread_cond_timedwait

我需要让一个线程等待直到任一个超时已过,或者一个变量被另一个线程改变经过一些研究,我发现pthreads有pthread_cond_timedwait,如果我要使用pthreads,这在这种情况下可能很有用。我改用C++11线程。在不完全传递给pthreads的情况下,是否有适合我的替代方案? 最佳答案 是的,你想要std::condition_variable来自,它有一个成员函数wait_for这需要一段时间。Thecondition_variableclassisasynchronizationprimitivethatcan

C++11 从频繁变化的范围内生成随机数

问:如何从先验未知范围生成(许多)均匀分布的整数?就性能(数百万个生成的数字)而言,首选方式是什么?上下文:在我的应用程序中,我必须在许多地方生成许多伪随机数。我对生成器使用单例模式来保持应用程序运行的可重复性。在我的例子中,分布总是均匀的,但问题是有太多可能的范围来预先制作C++11风格的分布对象。我的尝试:对此有两个明显的解决方案,第一个是使用一次性分布对象,第二个是使用模数将随机数从尽可能广泛的范围转换为所需的范围。但不知何故,我怀疑这些是最好的:)#include#include#include"limits.h"usingnamespacestd;mt19937mt;unif

c++ - C++11 是否引入了不区分大小写的字符串比较算法?

刚刚在GCC4.8上迁移到C++11,并且最好从boost::iequals迁移到STL。我搜索了互联网,但没有看到任何迹象表明std::iequals或新的std::basic_string方法在STL中原生支持这一点。如果这在C++11中不存在,那么自C++03以来解决此问题的方法是否发生了变化(即不同的解决方法?),或者这里仍然首选boost?提前致谢。` 最佳答案 不,C++11没有引入不区分大小写的字符串比较函数。您现在需要坚持使用Boost。希望这对您有所帮助! 关于c++-

c++ - 为什么在 C++11/C++14 中有针对自动和大括号初始化器的特殊类型推导规则?

在他的CppCon2014演讲中"TypeDeductionandWhyYouCare",ScottMeyers提出了一个问题,为什么在C++11/C++14标准中有关于auto和大括号初始化器的特殊规则(他的问题从at36m05s开始)。auto与braced-init-list组合的语义在§7.1.6.4/6中定义。我想了想,也想不出一个用例。到目前为止,我所看到的最接近的例子是BjarneStroustrup使用它的一个例子。在他的Cpp2014talk"MakeSimpleTasksSimple!",他曾经使用auto来捕获初始化器(但只是作为一种变通方法)。这是代码(幻灯片3

JDK 21 新特性一览

Java21已于2023年9月19日发布,是Oracle标准Java实现的下一个长期支持(LTS)版本。Java21具有以下15项新特性。StringTemplates(Preview)字符串模板,可以像其他语言那样子方便的做字符串拼接,是+号,StringBuilder,MessageFormat之外更方便的字符串拼接方法。注意:这个特性虽然还在预览阶段,还不属于正式发布,但是若能最终进入发布,能够大大减轻了Java编程时复杂字符串的编辑处理工作量。SequencedCollections引入新的接口来表示具有定义相遇顺序的集合。每个这样的集合都有定义明确的第一个元素、第二个元素,以此类推,

c++ - C++ 11线程在分离后是否自动销毁

通常,我会假设C++11线程在分离后自动销毁。但问题是,我找不到任何东西来证明这个假设。根据thisarticleOncedetached,thethreadshouldlivethatwayforever.永远?如果线程的功能结束,它的资源是否永远保留?根据thisarticleAfteracalltothisfunction,thethreadobjectbecomesnon-joinableandcanbedestroyedsafely.它可以安全销毁,但它是自动销毁的吗?如果不是自动销毁,如何销毁(不是强制销毁,而是在线程函数结束后销毁)感谢阅读。