c++ - 在什么语言中有 "guard"关键字或概念?

标签 c++ class nomenclature

我最近试图理解一个 C++ 程序,该程序是由我认为具有函数式编程背景的某个人编写的:例如,他声明了一个他广泛使用的 closure 类,并且在一定程度上类似于函数式编程中的闭包。另一个类被称为守卫,但我还没有完全弄清楚它有什么用处。它似乎附加了某种清理功能。

我在其中看到名为 guard 的概念的唯一语言是 Erlang,但它看起来与我找到的代码并不相似。 C++ 代码的作者可能暗示过,在哪些其他语言中存在这样的概念?

最佳答案

对我来说,这听起来像是他在使用 RAII。
类构造函数/析构函数用于在异常安全的上下文中对称地处理某种形式的资源分配/释放(Java 程序员将调用 finally {} 作为析构函数保证被调用。)。

这是一个非常常见的 C++ 习语,在现代 C++ 中被广泛使用。

代码是不是这样的:

void Plop()
{
     Guard   guard(lock);
     // Do lots of stuff
}

这里守卫在构造函数中加锁,在析构函数中解锁。

关于c++ - 在什么语言中有 "guard"关键字或概念?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2168365/

相关文章:

c++ - 函数参数列表周围的双括号

c++ - DoubleValidator 没有正确检查范围

java - java类文件加载/链​​接/初始化阶段的查询

c++ - 在另一个类的声明中将参数传递给类构造函数

c - 这段代码的循环不变式是什么?

c++ - "cdecl"代表什么?

c++ - 插入排序算法,我的代码有什么问题?

c++ - 将动态分配的指针数组调整为类

facebook - 为什么称为图形 API?

c++ - Xcode 4.5.2 中的 boost::regex 链接问题