[libcxx-commits] [PATCH] D65900: [libc++] Use [[nodiscard]] for lock_guard, as an extension
Louis Dionne via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Aug 8 13:03:57 PDT 2019
ldionne marked an inline comment as done.
ldionne added inline comments.
Comment at: libcxx/include/__config:1016
+ // Standard specifies the constructor as [[nodiscard]]
+# define _LIBCPP_NODISCARD_CTOR _LIBCPP_NODISCARD
> EricWF wrote:
> > What happens when we apply this attribute to a constructor with a compiler that doesn't yet support it?
> > Does the warning escape the system header?
> If compiler returns >= 201907L, it have to support nodiscard on ctors.
> Hopefully no compiler just bumps it to 201907L and does not support it.
> What happens when we apply this attribute to a constructor with a compiler that doesn't yet support it?
<stdin>:2:14: warning: attribute 'nodiscard' cannot be applied to functions without return value [-Wignored-attributes]
> Does the warning escape the system header?
No, which means we could just use `_LIBCPP_NODISCARD`/`_LIBCPP_NODISCARD_EXT` on the constructor and let the warning be captured inside the system header. That's what you had in mind to avoid introducing another macro, right? Would you prefer that?
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
More information about the libcxx-commits