@@ -1491,5 +1491,39 @@ struct TestInvokeResult
14911491};
14921492
14931493template struct eastl ::invoke_result<decltype (&TestInvokeResult::f), TestInvokeResult, void >;
1494+
14941495static_assert (!eastl::is_invocable<decltype (&TestInvokeResult::f), TestInvokeResult, void >::value, " incorrect value for is_invocable" );
1496+ static_assert (!eastl::is_invocable<decltype (&TestInvokeResult::f), TestInvokeResult, int , int >::value, " incorrect value for is_invocable" );
14951497static_assert (eastl::is_invocable<decltype (&TestInvokeResult::f), TestInvokeResult, int >::value, " incorrect value for is_invocable" );
1498+
1499+ static_assert (!eastl::is_invocable_r<int , decltype (&TestInvokeResult::f), TestInvokeResult, void >::value, " incorrect value for is_invocable_r" );
1500+ static_assert (!eastl::is_invocable_r<void , decltype (&TestInvokeResult::f), TestInvokeResult, int , int >::value, " incorrect value for is_invocable_r" );
1501+ static_assert (eastl::is_invocable_r<void , decltype (&TestInvokeResult::f), TestInvokeResult, int >::value, " incorrect value for is_invocable_r" );
1502+ static_assert (eastl::is_invocable_r<int , decltype (&TestInvokeResult::f), TestInvokeResult, int >::value, " incorrect value for is_invocable_r" );
1503+
1504+ struct TestCallableInvokeResult
1505+ {
1506+ int operator ()(int i) {return i;}
1507+ };
1508+
1509+ template struct eastl ::invoke_result<TestCallableInvokeResult, void >;
1510+
1511+ static_assert (!eastl::is_invocable<TestCallableInvokeResult, void >::value, " incorrect value for is_invocable" );
1512+ static_assert (!eastl::is_invocable<TestCallableInvokeResult, int , int >::value, " incorrect value for is_invocable" );
1513+ static_assert (eastl::is_invocable<TestCallableInvokeResult, int >::value, " incorrect value for is_invocable" );
1514+
1515+ static_assert (!eastl::is_invocable_r<int , TestCallableInvokeResult, void >::value, " incorrect value for is_invocable_r" );
1516+ static_assert (!eastl::is_invocable_r<void , TestCallableInvokeResult, int , int >::value, " incorrect value for is_invocable_r" );
1517+ static_assert (eastl::is_invocable_r<void , TestCallableInvokeResult, int >::value, " incorrect value for is_invocable_r" );
1518+ static_assert (eastl::is_invocable_r<int , TestCallableInvokeResult, int >::value, " incorrect value for is_invocable_r" );
1519+
1520+ typedef decltype (eastl::ref(eastl::declval<TestCallableInvokeResult&>())) TestCallableRefInvokeResult;
1521+
1522+ static_assert (!eastl::is_invocable<TestCallableRefInvokeResult, void >::value, " incorrect value for is_invocable" );
1523+ static_assert (!eastl::is_invocable<TestCallableRefInvokeResult, int , int >::value, " incorrect value for is_invocable" );
1524+ static_assert (eastl::is_invocable<TestCallableRefInvokeResult, int >::value, " incorrect value for is_invocable" );
1525+
1526+ static_assert (!eastl::is_invocable_r<int , TestCallableRefInvokeResult, void >::value, " incorrect value for is_invocable_r" );
1527+ static_assert (!eastl::is_invocable_r<void , TestCallableRefInvokeResult, int , int >::value, " incorrect value for is_invocable_r" );
1528+ static_assert (eastl::is_invocable_r<void , TestCallableRefInvokeResult, int >::value, " incorrect value for is_invocable_r" );
1529+ static_assert (eastl::is_invocable_r<int , TestCallableRefInvokeResult, int >::value, " incorrect value for is_invocable_r" );
0 commit comments