4

フォリー スコープ ガードを使用していますが、機能していますが、変数が使用されていないという警告が生成されます。

warning: unused variable ‘g’ [-Wunused-variable]

コード:

folly::ScopeGuard g = folly::makeGuard([&] {close(sock);});

そのような警告を回避するにはどうすればよいですか?

4

2 に答える 2

4

この警告は で無効にできますが-Wno-unused-variable、これは少し危険です (実際に使用されていない変数がすべて失われます)。

考えられる解決策の 1 つは、変数を実際に使用することですが、何もしないことです。たとえば、それを無効にする場合:

(void) g;

これはマクロにすることができます:

#define IGNORE_UNUSED(x) (void) x;

または、ブースト アプローチを使用することもできます: 何もしないテンプレート化された関数を宣言し、それを使用します。

template <typename T>
void ignore_unused (T const &) { }

...

folly::ScopeGuard g = folly::makeGuard([&] {close(sock);});
ignore_unused(g);
于 2016-02-23T20:16:55.733 に答える