Компоновщик ругается на функцию которая объявлена но не определена(грубо говоря не может найти её)
У меня есть функция которая выводит в консоль все элементы любого(почти: vector, list, deque) stl контейнера. При сборке проекта с этими файлами, компоновщик ругается что он не может найти определение этой же функции(или я чего-то не понимаю), помогите!!! Заголовочный файл:
//a.h
#pragma once
#define DEBUG
#define FULL
#ifdef DEBUG
namespace bvd_s{
#ifdef FULL
template<template<class E, class Alloc = std::allocator<E>> typename container, typename T>
void print(container<T>& arg);
#endif //full != define
}
#endif // DEBUG
cpp файл:
//a.cpp
#include "a.h"
#include <iostream>
template<template<class E, class Alloc = std::allocator<E>> typename container, typename T>
void bvd_s::print(container<T>& arg) {
for (auto i = arg.begin(); i != arg.end(); ++i) {
std::cout << *i << std::endl;
}
}
Ещё один cpp файл для вызова функции:
//main.cpp
#include "main.h"
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v = { 12, 567, 23, 5 };
bvd_s::print(v);
return 1;
}