Author: marshall Date: Wed Nov 15 20:48:34 2017 New Revision: 318375 URL: http://llvm.org/viewvc/llvm-project?rev=318375&view=rev Log: More of P0600 - '[[nodiscard]] in the Library' mark empty() as nodiscard in match_results. <regex>
Added: libcxx/trunk/test/std/re/re.results/re.results.size/empty.fail.cpp Modified: libcxx/trunk/include/regex Modified: libcxx/trunk/include/regex URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/regex?rev=318375&r1=318374&r2=318375&view=diff ============================================================================== --- libcxx/trunk/include/regex (original) +++ libcxx/trunk/include/regex Wed Nov 15 20:48:34 2017 @@ -5240,11 +5240,11 @@ public: // size: _LIBCPP_INLINE_VISIBILITY - size_type size() const {return __matches_.size();} + size_type size() const _NOEXCEPT {return __matches_.size();} _LIBCPP_INLINE_VISIBILITY - size_type max_size() const {return __matches_.max_size();} - _LIBCPP_INLINE_VISIBILITY - bool empty() const {return size() == 0;} + size_type max_size() const _NOEXCEPT {return __matches_.max_size();} + _LIBCPP_NODISCARD_AFTER_CXX17 _LIBCPP_INLINE_VISIBILITY + bool empty() const _NOEXCEPT {return size() == 0;} // element access: _LIBCPP_INLINE_VISIBILITY Added: libcxx/trunk/test/std/re/re.results/re.results.size/empty.fail.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/re/re.results/re.results.size/empty.fail.cpp?rev=318375&view=auto ============================================================================== --- libcxx/trunk/test/std/re/re.results/re.results.size/empty.fail.cpp (added) +++ libcxx/trunk/test/std/re/re.results/re.results.size/empty.fail.cpp Wed Nov 15 20:48:34 2017 @@ -0,0 +1,27 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// <regex> + +// class match_results<BidirectionalIterator, Allocator> +// bool empty() const; + +// UNSUPPORTED: c++98, c++03, c++11, c++14, c++17 +// UNSUPPORTED: clang-3.3, clang-3.4, clang-3.5, clang-3.6, clang-3.7, clang-3.8 + +#include <regex> + +#include "test_macros.h" + +int main () +{ + std::match_results<const char*> c; + c.empty(); // expected-error {{ignoring return value of function declared with 'nodiscard' attribute}} +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits