# t00051 - Test case for relative paths in lambda names ## Config ```yaml compilation_database_dir: .. output_directory: puml diagrams: t00051_class: type: class glob: - ../../tests/t00051/t00051.cc include: namespaces: - clanguml::t00051 using_namespace: - clanguml::t00051 ``` ## Source code File t00051.cc ```cpp #include namespace clanguml { namespace t00051 { template struct B : private std::thread { B(F &&f, FF &&ff) : f_{std::move(f)} , ff_{std::move(ff)} { } void f() { f_(); } void ff() { ff_(); } F f_; FF ff_; }; class A { public: private: class custom_thread1 : private std::thread { public: template explicit custom_thread1(Function &&f, Args &&...args) : std::thread::thread( std::forward(f), std::forward(args)...) { } }; static custom_thread1 start_thread1(); class custom_thread2 : private std::thread { using std::thread::thread; }; static custom_thread2 start_thread2(); auto start_thread3() { return B{[]() {}, []() {}}; } auto get_function() { return []() {}; } }; A::custom_thread1 A::start_thread1() { return custom_thread1{[]() {}}; } A::custom_thread2 A::start_thread2() { return custom_thread2{[]() {}}; } } } ``` ## Generated UML diagrams ![t00051_class](./t00051_class.svg "Test case for relative paths in lambda names")