%module valuewrapper_base
%inline 
%{ 
  namespace oss 
  { 
    enum Polarization { UnaryPolarization, BinaryPolarization }; 
 
    struct Base 
    { 
    };    
 
    template <Polarization P> 
    struct Interface_ : Base 
    { 
      Interface_(const Base& b) { }
    }; 
    
    template <class Result> 
    Result make() { return Result(*new Base()); }
  } 
%} 
 
namespace oss 
{ 
  // Interface 
  %template(Interface_BP) Interface_<BinaryPolarization>; 
  %template(make_Interface_BP) make<Interface_<BinaryPolarization> >; 
} 
