0

私のクラスはで定義されてdllおり、私が紹介している1つのクラスにはdllがありfunction templateます。この関数は他のメンバー関数を呼び出していますが、クライアントコードを作成すると、VisualStudioコンパイラで`非テンプレート関数のリンクエラーが発生します。

これが私function templateheader

void insertMetaInformation(std::string className, char const* typeString, void* pProperty);

template <typename CLASS, typename T> 
    void RegisterMember(  std::string className, 
      std::string propertyName, 
      std::string realClassName,
      typename MemberProperty<CLASS, T>::GetterType   getFn,        
      typename MemberProperty<CLASS, T>::SetterType   setFn,
      typename MemberProperty<CLASS, int>::LengthType lenFn     = NULL, 
      typename MemberProperty<CLASS, T>::ElemLenType  elemLenFn = NULL )
    {
      MemberProperty<CLASS, T>* pProperty = new MemberProperty<CLASS, T>();
      pProperty->m_getterFn               = getFn;
      pProperty->m_setterFn               = setFn;
      pProperty->m_lenFn                  = lenFn;
      pProperty->m_elementLenFn           = elemLenFn;
      pProperty->m_propertyName           = propertyName;
      pProperty->m_realClassName          = realClassName;

      char const *typeString = ToString<T>::value();

      insertMetaInformation(className, typeString, static_cast<void*>(pProperty));
    }

ファイルに実装insertMetaInformationしました。.cpp

4

0 に答える 0