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
template <typename T>
class C {
    template <typename U>
    friend U Func(U);
 
private:
    std::unordered_map<int, T> m_Hash;
};
 
template <typename T>
inline C<T>& GetC() {
    static C<T> staticC;
    return staticC;
}
 
template <typename U>
inline U Func(U b) {
    C<U>& c = GetC<U>();
    c.m_Hash[1= b;
    c.m_Hash[2= b;
 
    for (auto it : c.m_Hash) {
        std::cout << it.second << std::endl;
    }
 
    return 12345;
}
 
int main() {
    std::cout << Func(123<< std::endl;
}
cs
Output:

123

123

12345


밑에 글에 있는 코드랑 이 코드랑 뭐가다른거야... 얜 왜 멤버에 접근 가능한거냐고 ㅠ