当前位置: 首页 > 知识库问答 >
问题:

这个大括号cpp语法是什么?

公冶嘉茂
2023-03-14

唉,很难在谷歌上搜索大括号之类的符号。

我遇到了这个代码:

#include <functional>
#include <iostream>
 
template <typename A, typename B, typename C = std::less<>>
bool fun(A a, B b, C cmp = C{})
{
    return cmp(a, b);
}
 
int main()
{
    std::cout
      << std::boolalpha
      << fun(1, 2)   << ' ' // true
      << fun(1.0, 1) << ' ' // false
      << fun(1, 2.0) << ' ' // true
      << std::less<int>{}(5, 5.6)    << ' ' // false: 5 < 5 (warn: implicit conversion)
      << std::less<double>{}(5, 5.6) << ' ' // true: 5.0 < 5.6
      << std::less<int>{}(5.6, 5.7)  << ' ' // false: 5 < 5 (warn: implicit conversion)
      << std::less{}(5, 5.6)         << ' ' // true: less<void>: 5.0 < 5.6
      << '\n';
}

在里面https://en.cppreference.com/w/cpp/utility/functional/less.

语句C{}st中的大括号d::


共有1个答案

闾丘卓
2023-03-14

它创建了std::less的一个实例

然后将5,5.6作为参数传递给它的bool操作符()

这和

auto temp = std::less<int>{};
std::cout << temp(5, 5.6);

 类似资料:
  • 问题内容: 我正在研究将数据存储在mongodb中的示例Go应用程序。这行代码(https://github.com/zeebo/gostbook/blob/master/context.go#L36)似乎访问了存储在大猩猩会话中的用户ID: 有人可以在这里给我解释一下语法吗?我知道这可以从会话中获取价值,但是接下来的部分是什么呢?为什么括号中的点后面是表达式?这是函数调用吗? 问题答案: 是,括

  • 以下代码展示了JavaScript : 加起来一个总和 构建数组 构建一个脚本对象 如何理解第三个例子中大括号周围增加的括号?它们只是为了不让对象括号被解释为函数括号吗?还是他们有其他目的? 是否有其他方法来编写第三个示例,以使该语法更加明确,例如,是否可以在多行函数中构建JavaScript对象?

  • 问题内容: 我可以看到有两种不同的导入方式 第二个有括号。那么两者之间有什么区别?什么时候应该加上括号?谢谢 问题答案: 那么,是否应该 在方括号中 导入组件之间的区别在于您的方式。 出口有两种类型 默认导出 命名为出口 组件可以有 一个默认导出,零个或多个命名 导出 如果组件是默认导出,则需要不带括号将其导入,例如 导入为 命名的出口可能像 要么 您可以将其导入为 要么 如果您的组件有一个默认导

  • 问题内容: 我试图理解下面两个require语句之间的区别。 具体来说,s包装的目的是什么? 它们似乎都分配了电子模块的内容,但是它们的功能显然不同。 谁能给我一些启示? 问题答案: 第二个示例使用解构。 这将调用从所需模块导出的特定变量(包括函数)。 例如(functions.js): 包含在您的文件中: 现在您可以分别给他们打电话了, 相对于: 使用点表示法调用: 希望这可以帮助。 您可以在此

  • 问题内容: 关于SO的第一个问题,它是真正的RTM候选人。但是我保证你已经看过了,但似乎找不到。当我发现错过了一件简单的事情时,我会很高兴地做一个#headpalm。 试图弄清楚Zend Framework并遇到以下语法: 我从未见过用于访问似乎是成员变量的花括号语法。有什么不同 我假设_session无关紧要,但由于可能没有问题,因此将其包含在问题中。 花括号只是试图包装复合变量名称user_i

  • Java中的双大括号初始化语法()是什么?