在我的項目中我詳盡地使用了boost::any和boost::variant。爲此,我在前一個問題Generic function to convert boost::any to boost::variant中設計了一個從boost::any到boost::variant的常規轉換程序。非常感謝幫助我的人們。 找到的解決方案對我沒有任何問題,但有一些嚴重的缺點。由完全模板化的解決方案產生的代碼膨
我花了一段時間才弄清楚這一點,但boost::any的語義很混亂。 對於值類型,您可以使用它像這樣: int value = 100;
boost::any something;
something = value;
//...later...
int value = boost::any_cast<int>(&something);
此代碼是明確的,是有道理的,但商店value內部的
我希望有一個類似於boost::any但具有更多限制類型集的類型。類似這樣的: limited_any<int,long,string> x; // x is like boost::any but is guaranteed to contain only an int, a long, or a string
你會如何推薦實現這個? (無論是我自己還是使用現有的解決方案)