Hi there !
in the osgIntropsection framework, we use getCompatibleConstructor(...) or
getCompatibleMethod(...), etc... to get a function considering the
parameters offered. But it this process do the framework take into account
the possible implicit parameter constructions ?
I tried to check the sources, and as far as I understand, everything would
happen in the function if it was the case (for example for the implicit
convertion of a "const char*" object to "std::string"):
bool Reflection::accum_conv_path(const Type& source, const Type& dest,
ConverterList& conv, std::vector<const Type* > &chain, CastType castType)
{
// break unwanted loops
if (std::find(chain.begin(), chain.end(), &source) != chain.end())
return false;
// store the type being processed to avoid loops
chain.push_back(&source);
// search a converter from "source"
StaticData::ConverterMapMap::const_iterator i =
getOrCreateStaticData().convmap.find(&source);
if (i == getOrCreateStaticData().convmap.end())
return false;
// search a converter to "dest"
const StaticData::ConverterMap& cmap = i->second;
StaticData::ConverterMap::const_iterator j = cmap.find(&dest);
if (j != cmap.end() && (j->second->getCastType() == castType))
{
conv.push_back(j->second);
return true;
}
// search a undirect converter from "source" to ... to "dest"
for (j=cmap.begin(); j!=cmap.end(); ++j)
{
if ((j->second->getCastType() == castType) &&
accum_conv_path(*j->first, dest, conv, chain, castType))
{
conv.push_front(j->second);
return true;
}
}
return false;
}
... but I can't see anything concerning the type constructors here, so I
guess that to call a function you need to pass the exact type of parameter
needed (with an exception for the derived classes, and inheritance system),
for example:
with the function void myfunc(std::string arg1, osg::Node* obj)
the reflection framework would find a compatible method with the arguments :
{ std::string("test") , and osg::Group* myGroup } but it won't find
anything with the pair { "test", osg::Node* myNode }... Am I wrong ??
regards,
Manu.
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org