-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.cpp
113 lines (103 loc) · 2.23 KB
/
main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <bits/stdc++.h>
using namespace std;
// template < typename T = int >
// class NoDefault
// {
// public:
// NoDefault () = delete;
//
// explicit NoDefault (T t)
// {
// secret = t;
// }
//
// T get_secret ()
// {
// return secret;
// }
//
// void set_secret (T t)
// {
// secret = t;
// }
//
// private:
// T secret;
// };
//
// class No_Default
// {
// public:
// No_Default () = delete;
//
// explicit No_Default (int secret)
// {
// m_secret = secret;
// }
//
// int get_secret ()
// {
// return m_secret;
// }
//
// void set_secret (int secret)
// {
// m_secret = secret;
// }
//
// private:
// int m_secret;
// };
// namespace std
// {
// extern template class vector<string>;
// extern template class vector<No_Default>;
// extern template class vector<NoDefault<string>>;
// extern template class vector<NoDefault<int>>;
// }
template <typename T> class Stack
{
public:
Stack() { cout << typeid (T).name() << " stack created" << endl; }
};
void f1 (Stack<char>) { cout << "f1 running..." << endl; }
class Exercise
{
Stack<double> sd;
Stack<double> &rsd = sd;
Stack<int> si;
};
int main()
try
{
Stack<char> sc;
Stack<char> *scp = ≻
f1 (*scp);
int iObj = sizeof (Stack<string>);
cout << iObj << endl;
// NoDefault<string> no_default { "secret string" };
// cout << no_default.get_secret() << endl;
//
// NoDefault<long> secret_number { 53489623423453463 };
// cout << secret_number.get_secret() << endl;
//
// cout << "----------------" << endl;
//
// auto nd = NoDefault(1234);
//
//// vector<NoDefault> v1;
// vector<NoDefault<int>> v2;
// v2.emplace_back(1234);
// cout << v2.begin()->get_secret() << endl;
//
// cout << "----------------" << endl;
//
// vector<No_Default> v3;
// v3.emplace_back(1234);
// cout << v3.begin()->get_secret() << endl;
return 0;
}
catch (exception &e)
{
cerr << "Error: " << e.what() << endl;
}