[Rock-dev] using base::NamedVector<> as ports

Janosch Machowinski Janosch.Machowinski at dfki.de
Fri Aug 1 21:18:56 CEST 2014


Hm,
I don't see how clang will solve this issue. I know, that the
typedef will work, and that with clang we can catch template
declarations in general. But typelib does not support
templates. Only specialized instantiations.
Greetings
     Janosch

Am 01.08.2014 20:52, schrieb Sylvain Joyeux:
> This is due to a limitation in gccxml (which clang will hopefully not
> have ...). See
>
> http://rock-robotics.org/stable/documentation/orogen/type_definitions.html#the-special-case-of-templates
>
> Sylvain
>
> On Thu, Jul 31, 2014 at 9:39 AM, Ajish Babu <ajish.babu at dfki.de> wrote:
>> Hi all,
>>
>> I tried to use the base::NamedVector<..> as port types.
>>
>> when I include directly in the orogen like output_port("wrenches",
>> "/base/NamedVector< base/samples/Wrench >")
>>
>>      mars_core.orogen:231: type /base/NamedVector< /base/samples/Wrench > is
>> not declared (Orocos::Generation::ConfigError)
>>      Typelib[WARN]:
>> /home/babu-dfki/HDSDA2/DFKI-ROCK/install/include/base/NamedVector.hpp:12:
>> ignoring the empty struct/class /base/NamedVector</base/samples/Wrench>
>>      Typelib[WARN]:
>> /home/babu-dfki/HDSDA2/DFKI-ROCK/simulation/orogen/mars_core/.orogen/typekit/types/simulation/ForceTorqueSensorTypes.hpp:8:
>> cannot create the /simulation/Wrenches typedef, as it points to
>> /base/NamedVector</base/samples/Wrench> which is ignored
>>
>> and when I do typedef base::NamedVector< base::samples::Wrench > Wrenches;
>> and then try to use it
>>
>>      mars_core.orogen:230: type /simulation/Wrenches is not declared
>> (Orocos::Generation::ConfigError)
>>      Typelib[WARN]:
>> /home/babu-dfki/HDSDA2/DFKI-ROCK/install/include/base/NamedVector.hpp:12:
>> ignoring the empty struct/class /base/NamedVector</base/samples/Wrench>
>>      Typelib[WARN]:
>> /home/babu-dfki/HDSDA2/DFKI-ROCK/simulation/orogen/mars_core/.orogen/typekit/types/simulation/ForceTorqueSensorTypes.hpp:8:
>> cannot create the /simulation/Wrenches typedef, as it points to
>> /base/NamedVector</base/samples/Wrench> which is ignored
>>
>> It seems to work only if I create a new type like
>>
>>      struct Wrenches : public base::NamedVector<Wrench>
>>      {
>>      };
>>
>> Does anybody know what is going on or how it can be done without a new type?
>>
>> best
>> Ajish Babu
>>
>> _______________________________________________
>> Rock-dev mailing list
>> Rock-dev at dfki.de
>> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev
>>
> _______________________________________________
> Rock-dev mailing list
> Rock-dev at dfki.de
> http://www.dfki.de/mailman/cgi-bin/listinfo/rock-dev



More information about the Rock-dev mailing list