小编Łuk*_*iak的帖子

std :: set和boost :: container :: set之间的区别

std :: setboost :: container :: set之间的主要区别是什么?

c++ boost c++11

6
推荐指数
1
解决办法
1935
查看次数

为什么使用bind而不是函数调用?

在这种情况下使用boost :: bind有什么好处

std::for_each(participants_.begin(), participants_.end(),
    boost::bind(&chat_participant::deliver, _1, boost::ref(msg)));
Run Code Online (Sandbox Code Playgroud)

代替

for(iterator actual = participants_.begin(); actual != participants_.end(); ++actual)
    (*actual)->deliver(msg);
Run Code Online (Sandbox Code Playgroud)



链接到整个代码(这是一个由boost教程提供的简单服务器示例).

c++ boost bind c++11

6
推荐指数
1
解决办法
320
查看次数

通过引用传递 std::string_view

最近,在代码审查期间,我偶然发现了std::string_view通过引用传递的参数。例如下面的代码:

void fun(std::string_view a);
Run Code Online (Sandbox Code Playgroud)

变成

void fun(std::string_view& a);
Run Code Online (Sandbox Code Playgroud)

我觉得这很麻烦,原因如下:

  • 它不能再用除 之外的任何东西来调用l-value std::string_view
  • 使用的全部目的std::string_view是避免复制底层字符串,所以我认为使用&它没有意义。

问题是,将std::string_view参数声明为按引用传递而不是按值传递是否有任何优点?

c++ c++17

6
推荐指数
1
解决办法
7449
查看次数

由nullptr初始化的C++ 11自动变量

C++ 11标准初始化的变量"某事"的类型是什么

auto something = nullptr;
Run Code Online (Sandbox Code Playgroud)

c++ nullptr auto c++11

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

多个使用块,这段代码安全吗?

代码段如下

 public static string ToCompressedBase64(this string text)
    {
        using (var memoryStream = new MemoryStream())
        {
            using (var gZipOutputStream = new GZipStream(memoryStream, CompressionMode.Compress))
            {
                using (var streamWriter = new StreamWriter(gZipOutputStream))
                {
                    streamWriter.Write(text);
                }
            }
            return Convert.ToBase64String(memoryStream.ToArray());
        }
    }
Run Code Online (Sandbox Code Playgroud)

据我所知,如果class包含IDisposable字段,那么它应该实现IDisposable本身并负责处理拥有的对象,因此在这个假设下,在处理streamWriter之后,gZipOutputStream和memoryStream也将被处理掉.但是我们仍然不需要处理memoryStream来调用它上面的toArray()方法.
所以问题是,最后在memoryStream上调用ToArray()方法是否安全?

.net c# idisposable using .net-4.0

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

标签 统计

c++ ×4

c++11 ×3

boost ×2

.net ×1

.net-4.0 ×1

auto ×1

bind ×1

c# ×1

c++17 ×1

idisposable ×1

nullptr ×1

using ×1