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

48 lines
1.0 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;
}
}
```
## Generated UML diagrams
![t00047_class](./t00047_class.svg "Test case for recursive variadic template")