小编Gra*_*esa的帖子

gcc 的有效消毒剂抑制字符串是什么?

当使用带有 gcc 的消毒剂时,可以提供一个异常/抑制列表来处理误报等。

抑制文件格式记录不全。

每个抑制的形式都是

name_of_check:path_or_name
Run Code Online (Sandbox Code Playgroud)

的有效值是name_of_check什么?

gcc sanitizer thread-sanitizer address-sanitizer leak-sanitizer

7
推荐指数
1
解决办法
1228
查看次数

是否在 c++23 中向 std::string 添加了接受 std::array<char, N> 的新构造函数?

最近在我们的代码中发现了一个错误,我们不小心将 a 转换std::array<char, N>std::string. 有缺陷的代码不会在 c++20 模式下编译,但会在 c++23 模式下编译并 //mostly// 工作,除了一些带有 null 终止的边缘情况。我正在使用海湾合作委员会11.1。

#include <iostream>
#include <string>
#include <array>

int main()
{
    std::array<char, 3> x = {'a', 'b', '\0'};
    std::string s(x);
    std::cout << "'" << s << "'" << " has length " << s.size() << std::endl;
    //outputs "'ab' has length 3"
}
Run Code Online (Sandbox Code Playgroud)

我怀疑这可能与P1989R2 - std::basic_string_view 的范围构造函数有关,但我不知道该怎么做。

这是一个错误还是只是一个奇怪的行为还是什么?

c++ c++23

5
推荐指数
1
解决办法
302
查看次数