111 lines
2.4 KiB
Markdown
111 lines
2.4 KiB
Markdown
# t00014 - Alias template instantiation
|
|
## Config
|
|
```yaml
|
|
compilation_database_dir: ..
|
|
output_directory: puml
|
|
diagrams:
|
|
t00014_class:
|
|
type: class
|
|
glob:
|
|
- ../../tests/t00014/t00014.cc
|
|
using_namespace:
|
|
- clanguml::t00014
|
|
include:
|
|
namespaces:
|
|
- clanguml::t00014
|
|
exclude:
|
|
namespaces:
|
|
- std
|
|
- clanguml::t00014::std
|
|
plantuml:
|
|
before:
|
|
- left to right direction
|
|
```
|
|
## Source code
|
|
File t00014.cc
|
|
```cpp
|
|
#include <functional>
|
|
#include <map>
|
|
#include <memory>
|
|
#include <string>
|
|
#include <variant>
|
|
#include <vector>
|
|
|
|
/**
|
|
* These should not be include as they are not
|
|
* in ns clanguml::t00014
|
|
*/
|
|
template <typename T> struct clanguml_t00014_A {
|
|
T value;
|
|
};
|
|
|
|
using clanguml_t00014_AString = clanguml_t00014_A<std::string>;
|
|
|
|
namespace clanguml {
|
|
namespace t00014 {
|
|
|
|
template <typename T, typename P> struct A {
|
|
T t;
|
|
P p;
|
|
};
|
|
|
|
struct B {
|
|
std::string value;
|
|
};
|
|
|
|
template <typename T> using AString = A<T, std::string>;
|
|
template <typename T> using AStringPtr = A<T, std::unique_ptr<std::string>>;
|
|
|
|
template <typename T>
|
|
using PairPairBA = std::pair<std::pair<B, A<long, T>>, long>;
|
|
|
|
template <class T> using VectorPtr = std::unique_ptr<std::vector<T>>;
|
|
template <class T> using APtr = std::unique_ptr<A<double, T>>;
|
|
template <class T> using ASharedPtr = std::shared_ptr<A<double, T>>;
|
|
template <class T, class U>
|
|
using AAPtr = std::unique_ptr<std::pair<A<double, T>, A<long, U>>>;
|
|
|
|
template <typename T> using SimpleCallback = std::function<void(T, int)>;
|
|
template <typename... T> using GenericCallback = std::function<void(T..., int)>;
|
|
using VoidCallback = GenericCallback<void *>;
|
|
|
|
using BVector = std::vector<B>;
|
|
using BVector2 = BVector;
|
|
|
|
using AIntString = AString<int>;
|
|
using ACharString = AString<char>;
|
|
|
|
using AStringString = AString<std::string>;
|
|
using BStringString = AStringString;
|
|
|
|
class R {
|
|
using AWCharString = AString<wchar_t>;
|
|
|
|
PairPairBA<bool> bapair;
|
|
|
|
APtr<bool> abool;
|
|
AAPtr<bool, float> aboolfloat;
|
|
ASharedPtr<float> afloat;
|
|
A<bool, std::string> boolstring;
|
|
AStringPtr<float> floatstring;
|
|
AIntString intstring;
|
|
AStringString stringstring;
|
|
BStringString bstringstring;
|
|
|
|
protected:
|
|
BVector bs;
|
|
|
|
public:
|
|
BVector2 bs2;
|
|
SimpleCallback<ACharString> cb;
|
|
GenericCallback<AWCharString> gcb;
|
|
VoidCallback vcb;
|
|
VectorPtr<B> vps;
|
|
};
|
|
}
|
|
}
|
|
|
|
```
|
|
## Generated UML diagrams
|
|

|