Я хочу использовать оператор, определенный в другом файле и, если возможно, также в другом пространстве имен, вот что у меня есть.
(operator.hpp)
#ifndef __OPERATORS__HPP__
#define __OPERATORS__HPP__
#include "proto_handler.hpp"
#include <iostream>
namespace apius {
namespace support {
namespace operators{
std::istream& operator>>(std::istream& in,
inventory::proto::item& item);
}
}
}
(operatos.cpp)
#include "operators.hpp"
namespace apius {
namespace support {
namespace operators{
std::istream& operator>>(std::istream& in,
inventory::proto::item& item){
//code here
}
}
}
}
(another_file.cpp)
#include "operators.hpp"
extern std::istream& operator>>(std::istream& in,
inventory::proto::item& item);
void test(){
inventory::proto::item new_item;
std::cin>>new_item;
}
и я получаю неопределенную ссылку на оператор в строке, содержащей std :: cin
Что я могу сделатьсделать эту работу?