0
有代碼的一個示例的模板的方法:用於定義類
template <class T>
class CMessage
{
public:
using message_ptr = typename std::shared_ptr<T>;
static message_ptr Create (T val)
{
return std::make_shared<T>(val);
}
};
class CBuilder
{
public:
template <typename MT> MT::message_ptr CreateMessage()
{
return MT::message_ptr();
}
};
CBuilder builder;
CMessage<int>::message_ptr msg = builder.CreateMessage<CMessage<int>>();
的CBuilder clsss是正確的?可以在CBuilder中使用MT :: message_ptr?
_「CBuilder clsss是否正確?」_你的編譯器的意見是什麼? –
如果你在'MT :: message_ptr'之前加上'typename',它就可以建立:https://ideone.com/gQHPHu –
請更清楚地描述你的問題。是否有編譯器錯誤?如果是這樣,請包括它。 – Yakk