%module template_static

%warnfilter(SWIGWARN_RUBY_WRONG_NAME) foo<int>;    /* Ruby, wrong class name */
%warnfilter(SWIGWARN_RUBY_WRONG_NAME) foo<double>; /* Ruby, wrong class name */

%inline %{
template<class T> class foo {
public:
    static int test;
};
template<class T> int foo<T>::test = 0;
%}

%template(foo_i) foo<int>;
%template(foo_d) foo<double>;


%inline %{
namespace toto {
  class Foo {
  public:
      static int test;
      template<class T>
      static double bar(int i) {
	return 1.0;
      }

    private:
      int i;
  };
} 
int toto::Foo::test = 5;
%}

%template(bar_double) toto::Foo::bar<double>; 
