C++ Library Extensions 2022.12.09
To help learn modern C++ programming
042-partial_type.cpp
Go to the documentation of this file.
1#include <iostream>
2
3template<typename ElementTypeB> class TypeB;
4
5template<typename ElementTypeA>
6class TypeA
7{
8 template<typename ElementTypeB> friend class TypeB;
9
10 private:
11 ElementTypeA m_data{};
12
13 public:
14
15 template<typename ElementTypeB>
17};
18
19template<typename ElementTypeB>
20class TypeB
21{
22 template<typename ElementTypeA> friend class TypeA;
23
24 private:
25 ElementTypeB m_data{};
26
27 public:
28
29 template<typename ElementTypeA>
31 {
32 std::cout << a.m_data << std::endl;
33 }
34
35};
36
37template<typename ElementTypeA>
38 template<typename ElementTypeB>
40{
41 std::cout << b.m_data << std::endl;
42}
43
44int main()
45{
46 TypeA<int> a;
47
48 TypeB<int> b;
49
51
53}
int main()
auto & cout
auto & endl
void operation_over_type_b(TypeB< ElementTypeB > b)
void operation_over_type_a(TypeA< ElementTypeA > a)