私はboost :: anyのベクトルを持ち、このベクトルの 'any'のインデックスを探したいと思います。このようなboost ::任意の比較値ですか?
何か:
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;
}
問題は、私はエニーキャストを行う際に、今では唯一にキャストということです:私は、次の方法で2つの任意の値を比較してみてください。このため
vector<any> values;
any valueISearch = ...;
find<A*>(valueISearch);
特定のタイプと基本タイプについて気にしない:
class A {};
class B: public A {};
B v1;
B v2;
IsValueEqualTo<A*>(&v1, &v2);
リンクのみの回答ですが、リンクが無効です。 –
リンクが修正されました。 –