7#ifndef _ADTF_UCOM_ANT_CLASS_VERSIONS_INCLUDES_HEADER_
8#define _ADTF_UCOM_ANT_CLASS_VERSIONS_INCLUDES_HEADER_
17#ifndef UCOM_CLASS_VERSIONS
25#define UCOM_CLASS_VERSIONS(...) \
29 template<class_type*> struct class_versions \
32 template<std::size_t ArrSize = \
33 std::tuple_size<decltype(std::make_tuple(__VA_ARGS__, 1))>::value> \
34 static const std::array<adtf::ucom::tNamedVersion, ArrSize>& get_versions() \
36 static const std::array<adtf::ucom::tNamedVersion, ArrSize> arr = { \
38 class_type::class_info<(class_type*)nullptr>::DefaultCVersion() \
25#define UCOM_CLASS_VERSIONS(...) \ …
60template<
typename ...Args>
65 adtf_util::tVersion{
static_cast<adtf_util::tVersion::value_type
>(args)...}
77template<
typename classT>
81 typedef typename remove_const<typename remove_pointer<classT>::type>::type value_type;
82 static_assert(is_same<value_type, typename value_type::class_type>::value,
83 "get_class_versions<> failed. Check whether your interface correctly defined "\
86 return value_type::template class_info<(value_type*)
nullptr>::CVersions();
93template<
typename classT>
103template<
typename classT>
constexpr tNamedVersion add_version(const char *i_strProduct, Args... args)
Used for parameter list in ADTF_CLASS_DEPENDENCIES() to define version information.
constexpr iterator_adapter< const tNamedVersion, pointer_iterator > get_class_versions()
Get the class versions (corresponding to the CID) of the Class type.
Namespace for entire ADTF SDK.
Adapter for begin and end iterators - usable as return and parameter value in interfaces.
Named version information consisting of the modules name and its adtf_util::tVersion.