How do templates work?

how do templates work, this is a more c++ oriented question because I have a template class I am declaring before my queue class

template <typename SampleType>
class AudioBufferQueue

I get an error saying redefinition of “AudioBufferQueue”,
and later on i am using the template in the queue push() parameter passing it as a SampleType*

If you’re declaring the template in a header, perhaps your header doesn’t have include guards or #pragma once.

I’m an idiot, that fixed it. Thanks!