草庐IT

标准图

全部标签

c++ - C++ 中的整数范围——当标准还不存在时我该怎么办?

我知道C++重量级人物正在努力将范围引入语言,或者至少是标准库:EricNieblerdiscussesrangesonhisblogInterviewwith@BjarneStroustruponhisthoughtsreC++17ISOC++标准委员会(SC22)proposalN4128作者:Niebler、Parent和Sutton公平地说-我还没有通读官方建议。我只是一个想使用简单范围功能的谦虚C++程序员。今天我应该做什么而不是在C++17之后使用,比方说,简单的整数范围和步幅?当然,当我开始实际使用范围时,我的要求可能会扩大,但我仍然不追求更奇特的东西和各种极端情况。我想

c++ - optional<T> 进入 C++ 标准的含义

std::optional构造最近(?)被采用到C++17语言标准中。现在,现有API中有很多地方std::optional是替代函数返回类型的候选者;本质上,这些函数试图检索/生成某些东西,但不能保证一定会成功:在容器中查找元素。通过键访问映射中的值。分配内存从文件或网络建立输入/输出流因此,我的问题是:标准委员会是否正在考虑(甚至已经接受)对涉及使用std::optional的已建立API进行更改/添加??如果是,标准的哪些部分(据您所知)可能会发生变化?C++17或更高版本是否会发生此类更改? 最佳答案 Isthestanda

c++ - 通过异常向 "invalid input"发出信号时是否存在事实上的标准异常或最佳实践方式?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestioninvalid_argument是一个logic_error。两者都是referencesites表明行上的东西Thisclass[i.e.logic_error]definesthetypeofobjectsthrownasexceptionstoreporterrorsintheinternallogicaloftheprogram,suchasviolationoflogicalpr

c++ - C++ 标准是否为 unordered_set 定义了桶的结构?

当计算出unordered_set中某个元素的哈希值时,它会与其他不同但哈希值相同的元素一起放入“桶”中。我的经验是,这样一个桶中的元素是存储在一个单向链表中的。这意味着,在哈希函数不佳的存储桶内搜索时,它会变得非常慢。单向链表是标准的要求还是只是一种可能的实现方式?可以用set作为桶来实现unordered_set吗? 最佳答案 标准规定了要求和保证,但没有明确强制底层数据结构和算法。N4140§23.2.5[unord.req]/1Unorderedassociativecontainersprovideanabilityfor

c++ - 为什么标准队列没有定义交换方法特化

我读到所有STL容器都提供交换算法的专门化,以避免调用默认方法使用的复制构造函数和两个赋值操作。但是,当我认为在我正在处理的某些代码中使用队列会很好时,我注意到(与vector和deque不同)队列不提供这种方法?我只是决定使用双端队列而不是队列,但我仍然很想知道这是为什么? 最佳答案 C++0x将交换添加到容器适配器,如std::queue。我只能推测为什么当前标准中缺少它。在thisdiscussion有人提出了解决方法:Thereisasolutionsincethestandardmakestheneededpartspro

c++ - 检查嵌套的标准库数据

我在其下使用ddd3.3.11和gdb6.5-8.fc6rh。我的编译器是g++4.1.1。我有一个STL映射容器,其中包含一个intvector(vector)作为其键查找。key处的数据是MyType*。我使用的是DanMarinescu编写的.gdbinit文件。在您嵌套C++标准库容器之前,它工作得很好。我的问题是,使用.gdbinit文件中示例的检查技术,有没有办法检查嵌套的stdlib数据?我遇到的主要问题似乎是.gdbinit文件试图进行类型转换。如果我的map是类型map,MyType*>然后,在gdb中,我尝试调用pmap,例如pmapmyMapvectorMyTyp

c++ - 使用堆栈分配存储的标准兼容字符串流?

目前在野外似乎找不到任何可用的东西,这看起来很奇怪。所以在我自己动手之前,有没有人知道在堆栈上分配存储的符合标准的字符串流?我正在考虑2种方法来实现这一目标:最初在堆栈上使用静态大小的缓冲区(可能是允许编译时自定义的模板参数)当空间用完时恢复使用动态存储当空间用完时使用alloca增加堆栈存储这将允许将短于预定大小的字符串快速输入到字符串流中。选择合适的初始大小意味着可以在不频繁调整堆大小的情况下实现诸如日志记录之类的事情。 最佳答案 您可以使用std::basic_stringbuf,pooled_allocator>获得相同的好

【深度学习:MPT-30B】提高开源基础模型的标准

【深度学习:MPT-30B】提高开源基础模型的标准MPT-30B家族MPT-30B(Base)MPT-30B-InstructMPT-30B-Chat使用MosaicMLInference部署MPT-30B模型通过MosaicML培训定制MPT-30BLLMFoundry下一步是什么?附录致谢数据MPT-30B8k上下文窗口微调数据MPT-30B-指令微调数据MPT-30B-聊天微调数据评估Falcon代码评估免责声明隆重推出MPT-30B,它是我们开源模型基础系列中功能更强大的新成员,在NVIDIAH100TensorCoreGPU上使用8k上下文长度进行训练。在这里尝试HuggingFac

c++ - 什么是 ABI,为什么 C++ 没有标准的 ABI,如果有又有什么关系呢?

什么是ABI,为什么C++没有标准的ABI,如果有它为什么重要? 最佳答案 ABI是一个ApplicationBinaryInterface.它描述了如何组织和访问应用程序二进制文件的标准。标准化将允许多个编译器构建彼此完全兼容的二进制文件,或者可能允许单个可执行文件在各种平台上运行而无需重新编译等。 关于c++-什么是ABI,为什么C++没有标准的ABI,如果有又有什么关系呢?,我们在StackOverflow上找到一个类似的问题: https://stac

c++ - C++98 标准在哪里指定对静态成员的调用何时依赖于模板?

使用Clang3.0-std=c++98编译,接受以下代码:templatestructI{typedefintType;};templatestructS{staticintf(int);//staticintf(int*);//implicitlyinstantiatesItypedefI::TypeType;};S::Types;取消注释'f'的重载会导致Clang报告错误“在依赖类型名称之前缺少'typename'”。G++4.8在有或没有重载的情况下报告相同的错误。无论有没有重载,msvc10都不会给出任何错误。标准在哪里说明'f'是否依赖并且'typename'是必需的?如