cpp/ranges/copyable wrapper

and range adaptors that store an invocable object are specified in terms of an exposition-only class template. The name shown here is for exposition purposes only.

The wrapper behaves exactly like, except that the default constructor, copy assignment operator, and move assignment operator are (conditionally) different from those of std, which auguments with assignability when needed and makes it always satisfy.

Member functions
{{identical|{{small|std::}}optional| 2=

Member functions
}}