这两行奇怪的代码是什么意思?
thread_guard(thread_guard const&) = delete;
thread_guard& operator=(thread_guard const&) = delete;
这两行奇怪的代码是什么意思?
thread_guard(thread_guard const&) = delete;
thread_guard& operator=(thread_guard const&) = delete;
这=delete
是 C++0x 的一个新特性。这意味着一旦用户使用该函数,编译器应立即停止编译并抱怨“此函数已删除”(另请参阅:默认和删除的函数——Bjarne Stroustrup 的 C++0x 常见问题解答的默认值控制)。
是thread_guard(thread_guard const&)
一个拷贝构造函数,并且thread_guard& operator=(thread_guard const&)
是一个赋值构造函数。因此,这两行一起禁用thread_guard
实例的复制。
它是用于禁用类的某些功能的新 C++0x 语法。 有关示例,请参见维基百科。在这里,您是在告诉该类thread_guard
既不可复制也不可分配。