rocprofiler-sdk/cxx/details/mpl.hpp File Reference#
| 
    Rocprofiler SDK Developer API 0.5.0
    
   ROCm Profiling API and tools 
   | 
 
mpl.hpp File Reference
#include <cstddef>#include <cstdint>#include <optional>#include <string>#include <string_view>#include <type_traits>#include <utility>
 Include dependency graph for mpl.hpp:
 This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Namespaces | |
| namespace | rocprofiler | 
| namespace | rocprofiler::sdk | 
| namespace | rocprofiler::sdk::mpl | 
| namespace | rocprofiler::sdk::mpl::impl | 
Macros | |
| #define | ROCPROFILER_IMPL_HAS_CONCEPT(NAME, TRAIT) | 
| #define | ROCPROFILER_IMPL_SFINAE_CONCEPT(NAME, ...) | 
Typedefs | |
| template<typename Tp > | |
| using | rocprofiler::sdk::mpl::unqualified_identity_t = typename unqualified_identity< Tp >::type | 
| template<typename Tp > | |
| using | rocprofiler::sdk::mpl::supports_ostream = can_stringify< Tp > | 
Functions | |
| template<typename Tp , typename = typename Tp:: traits_type> | |
| constexpr bool | rocprofiler::sdk::mpl::has_traits (int) | 
| template<typename Tp > | |
| constexpr bool | rocprofiler::sdk::mpl::has_traits (long) | 
| template<typename Tp , typename = typename Tp:: value_type> | |
| constexpr bool | rocprofiler::sdk::mpl::has_value_type (int) | 
| template<typename Tp > | |
| constexpr bool | rocprofiler::sdk::mpl::has_value_type (long) | 
| template<typename Tp , typename = typename Tp:: key_type> | |
| constexpr bool | rocprofiler::sdk::mpl::has_key_type (int) | 
| template<typename Tp > | |
| constexpr bool | rocprofiler::sdk::mpl::has_key_type (long) | 
| template<typename Tp , typename = typename Tp:: mapped_type> | |
| constexpr bool | rocprofiler::sdk::mpl::has_mapped_type (int) | 
| template<typename Tp > | |
| constexpr bool | rocprofiler::sdk::mpl::has_mapped_type (long) | 
| template<typename ArgT > | |
| bool | rocprofiler::sdk::mpl::is_empty (ArgT &&_v) | 
| template<typename ContainerT , typename... Args> | |
| auto | rocprofiler::sdk::mpl::impl::emplace (ContainerT &_c, int, Args &&... _args) -> decltype(_c.emplace_back(std::forward< Args >(_args)...)) | 
| template<typename ContainerT , typename... Args> | |
| auto | rocprofiler::sdk::mpl::impl::emplace (ContainerT &_c, long, Args &&... _args) -> decltype(_c.emplace(std::forward< Args >(_args)...)) | 
| template<typename ContainerT , typename ArgT > | |
| auto | rocprofiler::sdk::mpl::impl::reserve (ContainerT &_c, int, ArgT _arg) -> decltype(_c.reserve(_arg), bool()) | 
| template<typename ContainerT , typename ArgT > | |
| auto | rocprofiler::sdk::mpl::impl::reserve (ContainerT &, long, ArgT) | 
| template<typename ContainerT , typename... Args> | |
| auto | rocprofiler::sdk::mpl::emplace (ContainerT &_c, Args &&... _args) | 
| template<typename ContainerT , typename ArgT > | |
| auto | rocprofiler::sdk::mpl::reserve (ContainerT &_c, ArgT _arg) | 
Data Structure Documentation
◆ rocprofiler::sdk::mpl::unqualified_identity
| struct rocprofiler::sdk::mpl::unqualified_identity | 
Macro Definition Documentation
◆ ROCPROFILER_IMPL_HAS_CONCEPT
| #define ROCPROFILER_IMPL_HAS_CONCEPT | ( | NAME, | |
| TRAIT | |||
| ) | 
Value:
    template <typename Tp, typename = typename Tp::TRAIT>                                          \
    inline constexpr bool NAME(int)                                                                \
    {                                                                                              \
        return true;                                                                               \
    }                                                                                              \
                                                                                                   \
    template <typename Tp>                                                                         \
    inline constexpr bool NAME(long)                                                               \
    {                                                                                              \
        return false;                                                                              \
    }
Definition at line 34 of file mpl.hpp.
   37    {                                                                                              \
   38        return true;                                                                               \
   39    }                                                                                              \
   40                                                                                                   \
   41    template <typename Tp>                                                                         \
   42    inline constexpr bool NAME(long)                                                               \
   43    {                                                                                              \
   44        return false;                                                                              \
   45    }
◆ ROCPROFILER_IMPL_SFINAE_CONCEPT
| #define ROCPROFILER_IMPL_SFINAE_CONCEPT | ( | NAME, | |
| ... | |||
| ) | 
Value:
    template <typename Tp>                                                                         \
    struct NAME                                                                                    \
    {                                                                                              \
    private:                                                                                       \
        static constexpr auto sfinae(int) -> decltype(__VA_ARGS__, bool()) { return true; }        \
                                                                                                   \
        static constexpr auto sfinae(long) { return false; }                                       \
                                                                                                   \
    public:                                                                                        \
        static constexpr bool value = sfinae(0);                                                   \
        constexpr auto        operator()() const { return sfinae(0); }                             \
    };
Definition at line 47 of file mpl.hpp.
   50    {                                                                                              \
   51    private:                                                                                       \
   52        static constexpr auto sfinae(int) -> decltype(__VA_ARGS__, bool()) { return true; }        \
   53                                                                                                   \
   54        static constexpr auto sfinae(long) { return false; }                                       \
   55                                                                                                   \
   56    public:                                                                                        \
   57        static constexpr bool value = sfinae(0);                                                   \
   58        constexpr auto        operator()() const { return sfinae(0); }                             \
   59    };
Generated by