如何解决构建模板类使用的模板函数时,显式实例化但没有定义可用
#ifndef _QUEUE_HPP
#define _QUEUE_HPP
#include <iostream>
#include "Node.hpp"
namespace std{
template<typename T>
class Queue{
public:
class Node<T>* front;
class Node<T>* rear;
Queue();
void enqueue(T data);
T dequeue();
~Queue();
template<class U>
friend std::ostream& operator<<(std::ostream& out,Queue<U> const& queue);
};
template<class classt>
std::ostream& operator<<(std::ostream& out,Queue<classt> const& queue);
template class Queue<double>;
template std::ostream& operator<<(std::ostream& out,Queue<double> const& queue);
}
#endif
编译结果
g++ -std=c++11 main.cpp Stack.o Queue.o -o test
在 main.cpp:2:0 包含的文件中:
Queue.hpp:在‘std::ostream& std::operator&)的实例化中[with classt = double; std::ostream = std::basic_ostream
Queue.hpp:25:81:从这里需要
Queue.hpp:25:81: 错误:显式实例化‘std::ostream& std::operator&) [with classt = double; std::ostream = std::basic_ostream
mplate std::ostream& operator const& queue);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。