Files
clang-uml/docs/test_cases/t00047.md
2022-12-21 19:20:18 +01:00

48 lines
1.1 KiB
Markdown

# t00047 - Test case for recursive variadic template
## Config
```yaml
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
```cpp
#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;
} // namespace t00047
} // namespace clanguml
```
## Generated UML diagrams
![t00047_class](./t00047_class.svg "Test case for recursive variadic template")