AsmGrader 0.0.0
Loading...
Searching...
No Matches
metadata.hpp File Reference
#include <boost/mp11/algorithm.hpp>
#include <boost/mp11/detail/mp_append.hpp>
#include <boost/mp11/detail/mp_list.hpp>
#include <boost/mp11/detail/mp_rename.hpp>
#include <boost/mp11/integral.hpp>
#include <boost/mp11/list.hpp>
#include <concepts>
#include <cstddef>
#include <functional>
#include <optional>
#include <string_view>
#include <tuple>
#include <type_traits>
#include <utility>
#include <variant>
Include dependency graph for metadata.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  asmgrader::metadata::Assignment
 
struct  asmgrader::metadata::ProfOnlyTag
 
struct  asmgrader::metadata::Weight
 
struct  asmgrader::metadata::detail::meta::MergeUnqImpl< Orig, First, New... >
 
struct  asmgrader::metadata::detail::meta::MergeUnqImpl< Orig >
 
class  asmgrader::metadata::Metadata< MetadataTypes >
 

Namespaces

namespace  asmgrader
 
namespace  asmgrader::metadata
 
namespace  asmgrader::metadata::detail
 
namespace  asmgrader::metadata::detail::meta
 

Typedefs

template<typename T >
using asmgrader::metadata::detail::meta::NormalizedT = std::decay_t<T>
 
template<template< typename... > class TypeList, typename... Ts>
using asmgrader::metadata::detail::meta::NormalizedTypeList = mp_rename<mp_transform<std::decay_t, mp_list<Ts...>>, TypeList>
 
using asmgrader::metadata::detail::meta::MetadataAttrTs = mp_list<Assignment, ProfOnlyTag, Weight>
 
template<typename T >
using asmgrader::metadata::detail::meta::TypeOrMonostate = std::conditional_t<std::same_as<NormalizedT<T>, void>, std::monostate, T>
 
template<std::size_t I, typename... Ts>
using asmgrader::metadata::detail::meta::Get = mp_at<mp_list<Ts...>, mp_int<I>>
 
template<typename Orig , typename... New>
using asmgrader::metadata::detail::meta::MergeUnq = MergeUnqImpl<Orig, New...>::type
 

Functions

template<typename T >
consteval bool asmgrader::metadata::detail::meta::is_normalized ()
 
template<typename... Args>
 asmgrader::metadata::Metadata (Args &&...) -> Metadata< detail::meta::NormalizedT< Args >... >
 
template<typename... Args>
 asmgrader::metadata::Metadata (std::tuple< Args... >) -> Metadata< Args... >
 
template<typename... Args>
consteval auto asmgrader::metadata::create (Args &&... args)
 

Variables

constexpr auto asmgrader::metadata::ProfOnly = ProfOnlyTag{}
 
constexpr Metadata asmgrader::metadata::DEFAULT_METADATA {Weight(1)}