1. Motivation
Conditional 
template < Movable T > T example1 ( T && ) noexcept ; template < Movable T > T example2 ( T && ) noexcept ( is_nothrow_move_constructible_v < T > and is_nothrow_move_assignable_v < T > ); 
They can also be painful to write, and thus painful to read. Consider writing a 
template < InputIterator I , Sentinel < I > S , class T , class Proj = identity > requires IndirectRelation < I , T * , ranges :: equal_to , Proj > I find ( I first , S last , const T & val , Proj proj = {}) noexcept ( is_nothrow_move_constructible_v < I > and is_nothrow_move_assignable_v < I > and is_nothrow_copy_constructible_v < I > and is_nothrow_copy_assignable_v < I > and is_nothrow_destructible_v < I > and is_nothrow_move_constructible_v < S > and is_nothrow_move_assignable_v < S > and is_nothrow_copy_constructible_v < S > and is_nothrow_copy_assignable_v < S > and is_nothrow_destructible_v < S > and noexcept ( first != last ) and noexcept ( ++ first ) and noexcept ( * first ) noexcept ( * first == val ) ) { for (; first != last ; ++ first ) { if ( * first == val ) { break ; } } return first ; } 
The above 
That’s a lot to read, and since iterators are broadly used in the standard library, it might make
more sense for us to create 
template < Semiregular T > constexpr is_nothrow_semiregular = is_nothrow_default_constructible < T > and is_nothrow_copyable < T > ; 
We’re now beholden to defining 
template < InputIterator I , Sentinel < I > S , class T , class Proj = identity > requires IndirectRelation < I , T * , ranges :: equal_to , Proj > constexpr I find ( I first , S last , T const & value , Proj proj ) noexcept ( is_nothrow_input_iterator < I > and is_nothrow_sentinel < S , I > and is_nothrow_indirect_relation < I , T * , ranges :: equal_to , Proj > ); 
This is most certainly repeating the interface unnecessarily: we have all of the information we need
in the form of concepts. PXXXX seeks to introduce 
// Example 1 class nothrow_example { public : nothrow_example () = default ; constexpr explicit nothrow_example ( int const value ) noexcept : value_ { value } {} constexpr int size () const noexcept { return value_ ; } private : int value_ = 0 ; }; template < Semiregular T > auto possibly_nothrow ( T t ) noexcept ( requires ) { return t . size () * 2 ; } int main () { possibly_nothrow ( nothrow_example { 42 }); // is noexcept possibly_nothrow ( vector < int > ( 1 ’000 ’000 )); // is not noexcept } 
In Example 1, 
// Example 2 class mostly_nothrow { public : mostly_nothrow () = default ; constexpr explicit mostly_nothrow ( int const value ) : value_ { value } {} constexpr int size () const { return value_ ; } private : int value_ = 0 ; }; // ... possibly_nothrow ( mostly_nothrow { 42 }); 
In Example 2, 
// Example 3 class actually_throws { public : actually_throws () = default ; constexpr explicit actually_throws ( int const value ) noexcept : value_ { value } {} constexpr void size () const { throw value_ ; } private : int value_ = 0 ; }; // ... possibly_nothrow ( actually_throws { 42 }); 
In Example 3, 
// Example 4 template < class T > auto possibly_nothrow ( T const & t ) noexcept ( requires ) { return t . size (); } 
Example 4 could either be equivalent to 
1.1. Before-and-after tables
| C++20 | C++23 | 
|---|---|
| 
 | 
 | 
2. Presumed criticisms
2.1. This is a rebranding of noexcept ( auto ) 
   Through online chatter, the author is of the opinion that 
2.2. Are you serious about the spelling!?
This proposal makes no intention to word-smith. 
2.3. If you’re confident that this isn’t noexcept ( auto ) 
   ... a concept might contain features that a function doesn’t use. e.g.
// Let SequenceContainer roughly represent the named requirement SequenceContainer from // [container.requirements.general] Table 62 // void clear ( SequenceContainer auto & c ) noexcept ( requires ) { c . clear (); } 
Java provides the language feature 
It is not the primary purpose of concepts to mimic Java’s 
...
refinesInputIterator and the copy happens outside the function call.Copyable 
[P1207] has been forwarded to LWG for review.
3. Acknowledgements
The author would like to thank Isabella Muerte and Morris Hafner for their feedback on this proposal.