MyQueue.cpp

// main.cpp
#include "mbed.h"
#include "MyQueue.h"

int main() {
    MyQueue<int> queue1;
    MyQueue<char> queue2;

    return -1;
}
// MyQueue.h
template<class T> class MyQueue {
    public:
        MyQueue(T x = 0);
        void push(T x);
        T pop();
};
// MyQueue.cpp
#include "MyQueue.h"

template class MyQueue<int>;
template class MyQueue<char>;

template<class T> MyQueue<T>::MyQueue(T x)
{
}

template<class T> void MyQueue<T>::push(T x)
{
}

template<class T> T MyQueue<T>::pop()
{
    return 0;
}