为什么std :: forward_list :: empty有[[nodiscard]],而std :: forward_list :: max_size没有? [重复]

问题描述 投票:-1回答:1

documentationstd::forward_list中,有两个成员函数:

  1. [[nodiscard]] bool empty() const noexcept;
  2. size_type max_size() const noexcept;

让我感到惊讶的是:

为什么empty[[nodiscard]]而没有max_size

c++ c++17 standards api-design forward-list
1个回答
3
投票

原因分为两部分:

  1. 无法混淆查询“最大大小是多少?”表示为.maximum_size()以及其他任何内容,而您可能会混淆查询“它是否为空?”用命令“ empty it!”表示为.empty(),名称为.clear()

  2. [[nodiscard]]是新增功能,尚未在标准库中适用的所有地方应用(迄今为止)。 C ++ 20添加了一些地方,但仍不全面。

© www.soinside.com 2019 - 2024. All rights reserved.