Opened 9 years ago
#9436 new Feature Requests
Add predefined concept for contextual conversion to bool
| Reported by: | Owned by: | Steven Watanabe | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | type_erasure |
| Version: | Boost 1.54.0 | Severity: | Not Applicable |
| Keywords: | operator bool() | Cc: |
Description
One concept that is often useful in many types is a contextual conversion to bool. The following expressions should be valid with the concept:
if (o) {}
if (!o) {}
return bool(o);
Add a predefined concept that catches these requirement. A possible implementation:
namespace boost { namespace type_erasure {
template<class T>
struct testable
{
static bool apply(const T& arg)
{ return bool(arg); }
};
template<class T, class Base>
struct concept_interface<testable<T>, Base, T> : Base
{
explicit operator bool () const
{ return call(testable<T>(), *this); }
};
}}
Note:
See TracTickets
for help on using tickets.
