2.2 KiB
2.2 KiB
t00014 - Alias template instantiation
Config
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
Source code
File t00014.cc
#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 GeneralCallback = std::function<void(T..., int)>;
using VoidCallback = GeneralCallback<>;
using BVector = std::vector<B>;
using BVector2 = BVector;
using AIntString = AString<int>;
using AStringString = AString<std::string>;
using BStringString = AStringString;
class R {
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;
GeneralCallback<AIntString> cb;
VoidCallback vcb;
VectorPtr<B> vps;
};
}
}