我有一個向量的boost :: any,並希望在此向量中找到'any'的索引。boost ::任何比較值?
事情是這樣的:
vector<any> values;
any valueISearch = ...;
find<A*>(valueISearch);
爲此,我嘗試2個的任何值以下方法比較:
template <class T> bool IsValueEqualTo(any aniInVector, any value)
{
if (aniInVector.empty() && value.empty())
return true;
if (aniInVector.empty() && !value.empty())
return false;
if (!aniInVector.empty() && value.empty())
return false;
try
{
T left = boost::any_cast<T>(aniInVector);
T right = boost::any_cast<T>(value);
return left == right;
}
catch(const boost::bad_any_cast &exception)
{
}
return false;
}
的問題是,現在,當我做了選播只投給具體類型和不關心基類型:
class A {};
class B: public A {};
B v1;
B v2;
IsValueEqualTo<A*>(&v1, &v2);
僅鏈接答案,但鏈接已死亡。 – 2017-05-28 09:20:39