Changeset 7a666789 in mainline


Ignore:
Timestamp:
2018-07-05T21:41:21Z (6 years ago)
Author:
Dzejrou <dzejrou@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
875788a8
Parents:
ac68088
git-author:
Dzejrou <dzejrou@…> (2018-04-24 16:31:10)
git-committer:
Dzejrou <dzejrou@…> (2018-07-05 21:41:21)
Message:

cpp: added missing make_pair (and added todos for missed sections), moved type transformation to an auxiliary header

Location:
uspace/lib/cpp/include
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/cpp/include/impl/tuple.hpp

    rac68088 r7a666789  
    3333#include <internal/tuple_cat.hpp>
    3434#include <internal/tuple_ops.hpp>
     35#include <internal/type_transformation.hpp>
    3536#include <functional>
    3637#include <type_traits>
     
    5960
    6061    inline constexpr aux::ignore_t ignore;
    61 
    62     namespace aux
    63     {
    64         template<class T>
    65         struct remove_reference_wrapper: type_is<T>
    66         { /* DUMMY BODY */ };
    67 
    68         template<class T>
    69         struct remove_reference_wrapper<reference_wrapper<T>>: type_is<T&>
    70         { /* DUMMY BODY */ };
    71 
    72         template<class T>
    73         using remove_reference_wrapper_t = typename remove_reference_wrapper<T>::type;
    74 
    75         template<class T>
    76         using transform_tuple_types_t = remove_reference_wrapper_t<decay_t<T>>;
    77     }
    7862
    7963    template<class... Ts> // TODO: test the reference_wrapper version once we got reference_wrapper
  • uspace/lib/cpp/include/impl/utility.hpp

    rac68088 r7a666789  
    3131
    3232#include <cstdint>
     33#include <internal/type_transformation.hpp>
    3334#include <type_traits>
    3435
     
    208209        }
    209210    };
     211
     212    /**
     213     * 20.3.3, specialized algorithms:
     214     */
     215
     216    // TODO: implement
     217
     218    template<class T1, class T2>
     219    constexpr auto make_pair(T1&& t1, T2&& t2)
     220    {
     221        return pair<
     222            aux::transform_tuple_types_t<T1>,
     223            aux::transform_tuple_types_t<T2>
     224        >{
     225            forward<T1>(t1), forward<T2>(t2)
     226        };
     227    }
     228
     229    /**
     230     * 20.3.4, tuple-like access to pair:
     231     */
     232
     233    // TODO: implement
    210234
    211235    /**
Note: See TracChangeset for help on using the changeset viewer.