I've done similar things in the past... but that isn't working in this case.
 In particular I get:
error: using 'typename' outside of template
error: 'T' was not declared in this scope

Sigh.

Derek

On Mon, Dec 22, 2008 at 2:55 PM, John Peterson <
[email protected]> wrote:

> Hey,
>
> Not sure if this is it but could you try:
>
> void Parameters::Parameter<typename std::vector<T> >::print
> (std::ostream& os) const
>
> (just add the typename qualifier, everything else the same.)  Anyway,
> that is what I always try when I'm dealing with templates and there is
> a type which depends on T...
>
> --
> John
>
>
>
> On Mon, Dec 22, 2008 at 2:38 PM, Derek Gaston <[email protected]> wrote:
> > Ok - I give up... someone tell me what the hell I'm doing wrong.  I'm
> trying
> > to add the following function to parameters.h (right underneath the
> generic
> > version):
> > template <typename T>
> > inline
> > void Parameters::Parameter<std::vector<T> >::print (std::ostream& os)
> const
> > {
> >   for (unsigned int i=0; i<_value.size(); i++)
> >     os << _value[i] << " ";
> > }
> > And I get errors:
> > invalid use of undefined type 'class Parameters::Parameter<std::vector<T,
> > std::allocator<_CharT> > >'
> > /Users/gastdr/projects/libmesh/include/utils/parameters.h:163: error:
> > declaration of 'class Parameters::Parameter<std::vector<T,
> > std::allocator<_CharT> > >'
> > /Users/gastdr/projects/libmesh/include/utils/parameters.h:260: error:
> > template definition of non-template 'void
> > Parameters::Parameter<std::vector<T, std::allocator<_CharT> >
> >>::print(std::ostream&) const'
> > /Users/gastdr/projects/libmesh/include/utils/parameters.h: In member
> > function 'void Parameters::Parameter<std::vector<T,
> std::allocator<_CharT> >
> >>::print(std::ostream&) const':
> >
> > But... if I do:
> > template <>
> > inline
> > void Parameters::Parameter<std::vector<Real> >::print (std::ostream& os)
> > const
> > {
> >   for (unsigned int i=0; i<_value.size(); i++)
> >     os << _value[i] << " ";
> > }
> > Like normal template specialization.... it works fine.  I've tried
> looking
> > this up in various places.... and from what I can see I'm doing it
> > correctly.... so it's time for some outside advice.  I've also tried
> > hundreds of permutations.... and just can't get the damn thing to go.
> > Thanks!
>
------------------------------------------------------------------------------
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to