Changeset f25d4a4 in mainline


Ignore:
Timestamp:
2018-07-05T21:41:23Z (6 years ago)
Author:
Dzejrou <dzejrou@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e54bbde5
Parents:
4529c4b
git-author:
Dzejrou <dzejrou@…> (2018-05-11 18:04:30)
git-committer:
Dzejrou <dzejrou@…> (2018-07-05 21:41:23)
Message:

cpp: fixed result_of

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/cpp/include/internal/type_traits/result_of.hpp

    r4529c4b rf25d4a4  
    3535{
    3636    template<class>
    37     class result_of
     37    struct is_function;
     38
     39    template<class>
     40    struct is_class;
     41
     42    template<class>
     43    struct is_member_pointer;
     44
     45    template<bool, class>
     46    struct enable_if;
     47
     48    template<class>
     49    struct decay;
     50
     51    template<class>
     52    struct remove_pointer;
     53
     54    template<class>
     55    struct result_of
    3856    { /* DUMMY BODY */ };
    3957
    4058    template<class F, class... ArgTypes>
    41     class result_of<F(ArgTypes...)>: aux::type_is<
    42         decltype(aux::invoke(declval<F>(), declval<ArgTypes>()...))
     59    struct result_of<F(ArgTypes...)>: aux::type_is<
     60        typename enable_if<
     61            is_function<typename decay<typename remove_pointer<F>::type>::type>::value ||
     62            is_class<typename decay<F>::type>::value ||
     63            is_member_pointer<typename decay<F>::type>::value,
     64            decltype(aux::invoke(declval<F>(), declval<ArgTypes>()...))
     65        >::type
    4366    >
    4467    { /* DUMMY BODY */ };
Note: See TracChangeset for help on using the changeset viewer.