我希望超載運算符[]。我希望接受一個std :: wstring :: iterator作爲這個方法的參數。但是,我希望增加此迭代器直到達到wstring的末尾。有沒有辦法做到這一點?下面是一些僞ISH-代碼,希望這將讓我的主張明確:我可以測試一個wstring :: iterator是否與非特定的:: end相等?
MyClass operator[](std::wstring::iterator it)
{
/* Obviously this wstring::iterator::parent method is a figment
* of my imagination; but hopefully it'll give the reader some
* idea what I wish to achieve. */
while (++it != it.parent_wstring.end())
{ party(); }
}
我曾試圖用型鑄造nullptr如下比較:
if (it == (std::wstring::iterator)nullptr)
{ party(); }
,不得不在這個奇妙的想法:
if (it == std::wstring(L"").end())
{ party(); }
但都沒有工作。如果上述任何一種努力導致恐慌,道歉(和一些興奮的虐待)。
這有什麼好處? –
我只能接受operator []的一個參數。每個人都知道有兩個論點的黨派是可怕的。當然,我可以只寫一個有兩個參數的方法;但我正在努力變得聰明。 – mkingston