C++ 中奇怪的命名空间概念
Weird namespace concept in c++
我遇到了这个:
template<class T> using PQ = priority_queue<T>;
我无法理解发生了什么,所以我尝试转到源代码并自己复制它:
template<class T> class I_Love_You {
public:
static void print() {
cout << "Hello Whosebug!" << endl;
}
};
template<class F> using We_are_just_friends = I_Love_You<F>;
void solve() {
We_are_just_friends<int>::print();
}
这是怎么回事? priority_queue 是在 c++ 文件中定义的模板 class 定义,然后在创建 .exe 时在 c++ 中进行链接。
但是这个 using 和 template 是什么以及我如何分配模板以及通过 using 创建或定义命名空间到底发生了什么?请有人帮我分解一下。
template<class T> using PQ = priority_queue<T>;
priority_queue
是一个模板类型,所以我们总是要为它指定一个类型。
如果我们为其创建别名,PQ
、priority_queue
仍然需要知道它的类型。所以我们声明 PQ
一个模板,并将传递给 PQ
的值传递给 priority_queue
.
我遇到了这个:
template<class T> using PQ = priority_queue<T>;
我无法理解发生了什么,所以我尝试转到源代码并自己复制它:
template<class T> class I_Love_You {
public:
static void print() {
cout << "Hello Whosebug!" << endl;
}
};
template<class F> using We_are_just_friends = I_Love_You<F>;
void solve() {
We_are_just_friends<int>::print();
}
这是怎么回事? priority_queue 是在 c++ 文件中定义的模板 class 定义,然后在创建 .exe 时在 c++ 中进行链接。 但是这个 using 和 template 是什么以及我如何分配模板以及通过 using 创建或定义命名空间到底发生了什么?请有人帮我分解一下。
template<class T> using PQ = priority_queue<T>;
priority_queue
是一个模板类型,所以我们总是要为它指定一个类型。
如果我们为其创建别名,PQ
、priority_queue
仍然需要知道它的类型。所以我们声明 PQ
一个模板,并将传递给 PQ
的值传递给 priority_queue
.