Files
clang-uml/docs/test_cases/t00047.md
2022-08-07 23:17:44 +02:00

1.0 KiB

t00047 - Test case for recursive variadic template

Config

compilation_database_dir: ..
output_directory: puml
diagrams:
  t00047_class:
    type: class
    glob:
      - ../../tests/t00047/t00047.cc
    using_namespace: clanguml::t00047
    include:
      namespaces:
        - clanguml::t00047

Source code

File t00047.cc

#include <type_traits>

namespace clanguml {
namespace t00047 {

template <typename... Ts> struct conditional_t;

template <typename Else> struct conditional_t<Else> {
    using type = Else;
};

template <typename Result, typename... Tail>
struct conditional_t<std::true_type, Result, Tail...> {
    using type = Result;
};

template <typename Result, typename... Tail>
struct conditional_t<std::false_type, Result, Tail...> {
    using type = typename conditional_t<Tail...>::type;
};

template <typename... Ts>
using conditional = typename conditional_t<Ts...>::type;

}
}

Generated UML diagrams

t00047_class