草庐IT

标准ACL

全部标签

c++ - Boost 或标准库是否提供了一种方法来检查转换是否无损?

我正在寻找一个标准库或Boost函数,它们可以无损地将数字转换为另一种基本类型,并以某种方式告诉我转换是否无损(如果不是,则抛出异常)。以下是一些示例:autox=lossless_cast(1u);//ok,doublecanrepresent1autox=lossless_cast(1.2);//fail,intcan'trepresent1.2autox=lossless_cast(1E200);//fail,intcan'trepresent1E200boost::numeric_cast接近于它会拾取超出目标类型数值范围的转换,但如果它们是无损的但在目标类型内则不会(参见我的

c++ - 为什么C++标准库中没有std::transform_n函数?

我在草稿N4431中找不到transform_n函数的提及C++标准。这是故意的吗?如果不是,人们将如何为标准的future版本提出这一建议?下面是我将如何实现它:template_OutputIteratortransform_n(_InputIterator__first,Size__n,_OutputIterator__result,_UnaryOperation__op){for(Sizei=0;i_OutputIteratortransform_n(_InputIterator1__first1,Size__n,_InputIterator2__first2,_OutputI

c++ - 标准输入作为 MSVC 的输入文件

我有一个自定义工具,我想在预处理和编译之间作为编译过程的一部分运行。对于GCC,我这样做:gcc[options]-Esource.c|mytool|gcc[options]-csource.o-xc-但是,我还没有想出如何为MSVC做类似的事情。目前我有cl.exe[options]/EPsource.c|mytool.exe>temp.ccl.exe[options]/ctemp.c这里的问题是对于每个源文件(数千个),我都有一个额外的磁盘写入/读取周期。此外,当MSVC输出.i文件时,它们往往会变得非常大。超过10MB大。因此,每个文件的10MB磁盘I/O堆积得非常快。所以,我的

c++ - C++ 标准对带符号整数类型的最小值和最大值之间关系的保证是什么?

假设-LLONG_MAX是否安全?(否定LLONG_MAX)属于longlong范围?假设如果LLONG_MIN是否安全?然后LLONG_MIN==-LLONG_MAX-1?它是由标准保证的还是所有实际设备都提供LLONG_MIN==-LLONG_MAX-1或LLONG_MIN==-LLONG_MAX? 最佳答案 Isitsafetoassumethat-LLONG_MAX(negatedLLONG_MAX)belongstolonglongrange?IsitsafetoassumethatifLLONG_MINthenLLONG

c++ - "black box"类型的标准布局保证的目的是什么?

C++标准指定mutex、atomics或conditinal_variable是标准布局类型。这个规范有什么好处?用户如何利用此属性?一般来说,如果知道一个类型是标准布局但不知道其实现细节,我能得到什么? 最佳答案 来自thisstandardlayoutreference:Standardlayouttypesareusefulforcommunicatingwithcodewritteninotherprogramminglanguages.例如,如果您构建一个C和C++混合应用程序,C结构将是标准布局,并且可以在用C编写的部

c++ - 谁能解释一下当前C++0x标准草案的这一段?

谁能解释ISON3242§3.2第2点中的这个陈述Anon-placementallocationordeallocationfunctionforaclassisodr-usedbythedefinitionofaconstructorofthatclass.Anon-placementdeallocationfunctionforaclassisodr-usedbythedefinitionofthedestructorofthatclass,orbybeingselectedbythelookupatthepointofdefinitionofavirtualdestructor

STM32 LED编程 GPIO的初始化(标准库)

实验的电路图介绍实验的电路图类似于开漏接法要初始化GPIOC接口标准库的模板GPIO的标准库编程接口GPIO引脚的初始化GPIO作为片上外设每一个片上外设使用前一定要使能时钟为什么要使能时钟?时钟是啥时钟的使能stm32的每一个片上外设都是时序电路时序电路在使用前都要进行时钟使能通过调用图片中圈起来的函数进行时钟初始化第一个参数为初始化的GPIO口绿色的字如要初始化GPIOC第一个参数就输入RCC_APB2Periph第二个参数就输出ENABLE即可完成时钟的初始化开启gpioc的时钟GPIO_Init的初始化第一个参数写你要初始化端口以GPIOCP13为例子第一个参数就写GPIOC第二个参数

【C++】详解用标准库的std::mt19937生成随机数

2023年8月16日,周三晚上写了1个半小时目录概述英文文档什么是mt19937什么是状态大小头文件std::mt19937的常用成员函数1.构造函数:2.种子操作函数:3.随机数生成函数:4.辅助函数:生成种子值方法1:使用std::random_device方法2:使用时间戳举例说明概述英文文档std::mersenne_twister_engine-cppreference.comhttps://cplusplus.com/reference/random/mt19937/什么是mt19937std::mt19937是C++标准库中的一个伪随机数生成器类,它实现了梅森旋转算法(Merse

c++ - 确认此标准库错误与 MSVC 2015 RC 中的分配器有关

这是一个SSCCE:#include#includetemplatestructmy_allocator:std::allocator{//Thisoverridingstructcausestheerrortemplatestructrebind{typedefmy_allocatorother;};//Ignoreallthis.typedefstd::allocatorbase;typenamebase::pointerallocate(typenamebase::size_typen,std::allocator::const_pointer/*hint*/=nullptr){

c++ - C++03 标准容器的堆栈分配器

对于一个软件,我必须避免在堆中使用任何内存,并且只依赖堆栈分配的内存。然后,这使我无法使用我真正想使用的任何C++标准容器,例如vector、映射、字符串(好吧,basic_string)来简化开发和数据操作。我发现了(许多)堆栈分配器的实现,例如thisone它本身引用了另外两个,或者thisone来自Chrome。其中许多并不完全符合标准,或者依赖于C++11(遗憾的是,我目前还在使用C++03)。您对C++03现有的良好堆栈分配器有任何反馈,或者我应该采用上述之一吗?谢谢! 最佳答案 HowardHinnant的short_a