0
我有C++中的相當簡單的代碼,那就是:C2894沒有任何 '的extern'
namespace Phoenix
{
template<typename T>
struct Ref
{
private: T* _instance;
public: inline Ref(T* instance) { ... }
public: inline Ref(const Ref<T> &reference) { ... }
public: inline Ref<T>& operator=(const Ref<T> &reference) { ... }
};
}
此代碼是在Visual 2012 C++庫。
現在,如果我嘗試在最終應用程序中重複使用它,則會發生C2894錯誤,說我無法聲明具有'C'鏈接的模板。好。
我沒有使用extern 'C'
...
任何想法?我錯過了什麼嗎?
你在最後一個'}之後缺少一個分號,但是它在VS2012項目中編譯得很好。你可能在.c而不是.cpp中使用它? –
我嚴重地複製/粘貼了我的代碼,分號就在那裏。此外,此代碼位於.cpp文件中包含的.h文件中。當然,實現是在.h中,因爲它是一個模板結構。 – Hemel
好吧,我讓我的項目與你的項目相匹配 - 我在.h中有上面的代碼,它包含在.cpp中。它編譯得很好,所以我們需要找到你的項目和我的項目有什麼不同。如果你做我做過的事情,你會得到同樣的錯誤嗎?也許你的'#include'在'extern「C''裏面? –