DBus
プロパティ値を標準型に変換するヘルパー関数を作成しています。そのために、いくつかのタイプを変換するには、std::map
を作成する必要があります。地図はDICT
のタイプをDBus
に表します。 DBUS
のDICTタイプは、任意のタイプをキーとし、任意のタイプをその値として持つことができます。今、それをstd::map
に変換する必要があります。私はDICT
タイプのstd::map<boost::any, boost::any>
をDBUS
に使用することを考えています。しかし、すべてのタイプのDBUS
をstdタイプに変換した後にタイプをチェックする必要があります。しかし、それはプログラムが以下の(明らかに)失敗したとして、私はそれを行うことはできませんようになっています。私はそれを行うには良い方法を探していますキーの型および/またはタイプboost :: anyの値のstd :: mapの型チェック?
#include <iostream>
#include <typeinfo>
#include <boost/any.hpp>
#include <map>
#include <string>
int main()
{
std::map<std::string, boost::any> m;
boost::any key = 2;
boost::any value = std::string("Hello");
m.insert(std::make_pair(std::string("Key"), value));
if (typeid(m) == typeid(std::map<std::string, std::string>))
std::cout << "Yes" << std::endl;
return 0;
}
。