48 lines
1.1 KiB
Markdown
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
|
|

|