我有一個模板類,我米試圖顯式實例的顯式模板實例:C++操作
template<T>
struct tmat2x3
{
...
typedef tvec3<T> col_type;
..
};
操作聲明如下:
template <typename T>
typename tmat2x3<T>::row_type operator* (tmat2x4<T> const & m, typename tmat2x3<T>::col_type const & v);
我明確實例化操作使用以下內容:
template tmat2x3<unsigned char>::row_type operator * (tmat2x3<unsigned char> const &m, tmat2x3<unsigned char>::col_type const &s);
gcc給我以下錯誤:但是:
../glm/glm_core.cpp: In instantiation of ‘typename glm::detail::tmat2x3<T>::row_type glm::detail::operator*(const glm::detail::tmat2x3<T>&, const typename glm::detail::tmat2x3<T>::col_type&) [with T = unsigned char]’:
../glm/glm_core.cpp:443: instantiated from here
../glm/glm_core.cpp:443: error: explicit instantiation of ‘typename glm::detail::tmat2x3<T>::row_type glm::detail::operator*(const glm::detail::tmat2x3<T>&, const typename glm::detail::tmat2x3<T>::col_type&) [with T = unsigned char]’ but no definition available
關於我在做什麼的任何想法是錯誤的?
在此先感謝
當您明確實例化時,您是否有可用的body off操作符? – Anycorn 2010-10-04 01:14:29
你已經向我們展示了這個聲明,但編譯器正在抱怨這個定義。你如何定義模板? – Potatoswatter 2010-10-04 01:31:10