#include "mq-instance.hpp"
int main() {
business::Msg_t msg;
business::RealMQ_t mq;
mq.send( msg );
return 0;
}
#pragma once
namespace my_lib {
template<typename T, typename SIZE_TYPE>
class GenericMQ_t {
struct Node_t {
SIZE_TYPE _head;
SIZE_TYPE _tail;
T _data;
};
SIZE_TYPE _size {};
Node_t* _buff {};
public:
void send( const T& );
};
}; // namespace my_lib
#include "mq-template.hpp"
#include <iostream>
namespace my_lib {
template<typename T, typename SIZE_TYPE>
void GenericMQ_t<T, SIZE_TYPE>::send( const T& ) {
// just for example
std::cout << "Hello!";
};
}; // namespace my_lib
#pragma once
#include "mq-template.hpp"
namespace business {
struct Msg_t {};
using RealMQ_t = my_lib::GenericMQ_t<Msg_t, int>;
};
#include "mq-instance.hpp"
#include "mq-template.tpp"
template class my_lib::GenericMQ_t<business::Msg_t, int>;
namespace business {
}; // namespace business