0
我想改善我的通用架構,並且我已經決定使用這種類型的模糊上下文引用的系統將是我的目的的理想選擇。但是,我無法弄清楚如何使語法起作用。我甚至不知道這樣的事是否可能!我有一個完成大致相同的事情,但是這將是最好稍微shiestier選擇:C++非類型模板模板參數,參考*這
class IContained
{
public:
virtual int getInt() = 0;
};
typedef std::shared_ptr<IContained>IContainedPtr;
template<template<class RefType, RefType& itsRef> class ContainedType>
class TestClass
{
TestClass() :
myContained(new ContainedType < TestClass, *this>())
{
}
int getContextInt()
{
return 3;
}
IContainedPtr myContained;
};
template<class RefType, RefType& itsRef>
class Contained:
virtual public IContained
{
int getInt()
{
return itsRef.getContextInt();
}
};
TEST(POTATO, PARTY)
{
TestClass<Contained> myTest();
int thing = myTest.myContained->getInt();
EXPECT_EQ(thing, 3);
}
可能會更好地使用單詞或甚至更好的類圖解釋您正在嘗試完成的任務。你的代碼甚至沒有編譯,所以很難僅僅根據代碼來推斷問題。 –
你能否試圖縮小範圍,你想得到什麼幫助? 「讓它爲我工作」有點太寬泛。 – Warlord
對不起,我以爲有人可能通過視覺認出了這個問題。結果有人做了,謝天謝地。我包含了我的GTest內容,這樣你就可以看到我想如何實現這些類。這將需要一段時間來解釋如何適合上下文... 無論如何感謝您的時間,傢伙。我現在知道它有什麼問題。 – WhittlesJr