| 1480 | |
| 1481 | template <bool IsStrongExceptGuaranteed, typename T> |
| 1482 | struct assert_no_strong_except_guarantee { |
| 1483 | static_assert( |
| 1484 | !IsStrongExceptGuaranteed || |
| 1485 | (std::is_nothrow_move_constructible<T>::value && |
| 1486 | std::is_nothrow_destructible<T>::value), |
| 1487 | "Can't wrap a object an object that has no strong exception guarantees " |
| 1488 | "if this is required by the wrapper!"); |
| 1489 | |
| 1490 | using type = void; |
| 1491 | }; |
| 1492 | |
| 1493 | /// SFINAES out if the given callable is not copyable correct to the left one. |
| 1494 | template <typename LeftConfig, typename RightConfig> |
nothing calls this directly
no outgoing calls
no test coverage detected