У меня есть функция, которая ищет std::map
из boost::python
элементов объекта.Мне нужно найти конкретное значение ключа и вернуть соответствующий объект boost :: python, если объект существует на карте, в противном случае мне нужно вернуть объект None.Есть ли способ для кода вызывающей стороны определить, является ли возвращаемый объект из функции объектом None?Ниже приведен код для функции поиска:
namespace bpy = boost::pythono;
namespace fs = boost::filesystem;
std::map<fs::path, bpy::object> imported_modules;
bpy::object module_exists(fs::path path)
{
auto it = imported_modules.find(path);
if (it != imported_modules.end())
{
return it->second();
}
else
{
return bpy::object();// A None object
}
}
Ниже показано, как вызывается функция:
bpy::object mod_cached = module_exists(filepath);
if (!mod_cached.is_none())
{
cout << "Module Found" << endl;
}
Однако при запуске программы появляется следующая ошибка:
TypeError: объект 'module' не вызывается
Есть предложения?