# t00044 - Test case for inner type aliases with parent class template args
## Config
```yaml
compilation_database_dir: ..
output_directory: puml
diagrams:
  t00044_class:
    type: class
    generate_packages: true
    glob:
      - ../../tests/t00044/t00044.cc
    using_namespace:
      - clanguml::t00044
    include:
      namespaces:
        - clanguml::t00044
```
## Source code
File t00044.cc
```cpp
// Inspired by skypjack/entt signal handlers
// This test case checks that at least clang-uml does not crash on this code
namespace clanguml::t00044 {

template <typename T> class sink;

template <typename T, typename A> class signal_handler;

template <typename Ret, typename... Args, typename A>
class sink<signal_handler<Ret(Args...), A>> {
    using signal_t = signal_handler<Ret(Args...), A>;

public:
    sink(signal_t &sh)
        : signal{&sh}
    {
    }

private:
    signal_t *signal;
};

template <typename Ret, typename... Args, typename A>
class signal_handler<Ret(Args...), A> {
};

template <typename Ret, typename... Args, typename A>
sink(signal_handler<Ret(Args...), A> &)
    -> sink<signal_handler<Ret(Args...), A>>;

signal_handler<void(int), bool> int_handler;

sink sink1{int_handler};

} // namespace clanguml::t00044

```
## Generated UML diagrams
![t00044_class](./t00044_class.svg "Test case for inner type aliases with parent class template args")
