/tags/rel-1.3.35/Examples/test-suite/rename_scope.i
Swig | 68 lines | 58 code | 10 blank | 0 comment | 0 complexity | 4e81574f3e184421e548a467f5c4c3aa MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- %module rename_scope
- %inline
- %{
- namespace oss
- {
- enum Polarization { UnaryPolarization, BinaryPolarization };
-
- template <Polarization P>
- struct Interface
- {
- };
- }
- %}
-
- namespace oss
- {
- // Interface
- %template(Interface_UP) Interface<UnaryPolarization>;
- %template(Interface_BP) Interface<BinaryPolarization>;
-
- }
- %inline
- %{
- namespace oss
- {
- namespace interfaces
- {
- template <Polarization P>
- struct Natural : Interface<P>
- {
- int test(void) { return 1; }
- };
- }
- }
- %}
-
- namespace oss
- {
- namespace interfaces
- {
- %rename(rtest) Natural<UnaryPolarization>::test;
- %rename(rtest) Natural<oss::BinaryPolarization>::test;
-
- // Natural
- %template(Natural_UP) Natural<UnaryPolarization>;
- %template(Natural_BP) Natural<BinaryPolarization>;
- }
- }
- %rename("equals") operator==;
- %inline %{
- namespace Utilities {
- class Bucket
- {
- public:
- Bucket() : m_left(0) {}
- friend bool operator==(const Bucket& lhs, const Bucket& rhs){
- return ( rhs.m_left == lhs.m_left );
- }
- private:
- int m_left;
- };
- }
-
- %}