80 lines
1.8 KiB
OpenEdge ABL
80 lines
1.8 KiB
OpenEdge ABL
%module xxx
|
|
|
|
%namewarn("314:'key1' is a keyword, renaming to '_key1'", rename="_%s") "key1";
|
|
%namewarn("314:'key2' is a keyword, renaming to '_key2'", rename="_%s") "key2";
|
|
%namewarn("314:'key3' is a keyword, renaming to '_key3'", rename="_%s") "key3";
|
|
%namewarn("314:'key4' is a keyword, renaming to '_key4'", rename="_%s") "key4";
|
|
%namewarn("314:'key5' is a keyword, renaming to '_key5'", rename="_%s") "key5";
|
|
|
|
// Non-templated
|
|
%ignore KlassA::key1;
|
|
%rename(key2renamed) KlassA::key2;
|
|
%rename(key3renamed) KlassA::key3;
|
|
%rename(key4renamed) KlassA::key4;
|
|
|
|
// Templated
|
|
%ignore KlassB::key1;
|
|
%rename(key2renamed) KlassB::key2;
|
|
%rename(key3renamed) KlassB<double>::key3;
|
|
|
|
// Template specialized
|
|
%ignore KlassC::key1;
|
|
%rename(key2renamed) KlassC::key2;
|
|
%rename(key3renamed) KlassC<double>::key3;
|
|
|
|
// No warnings for these...
|
|
%inline %{
|
|
struct KlassA {
|
|
void key1() {}
|
|
void key2() {}
|
|
void key3() {}
|
|
template<typename X> void key4(X x) {}
|
|
};
|
|
|
|
template<class T> struct KlassB {
|
|
void key1() {}
|
|
void key2() {}
|
|
void key3() {}
|
|
};
|
|
|
|
template<class T> struct KlassC {};
|
|
template<> struct KlassC<double> {
|
|
void key1() {}
|
|
void key2() {}
|
|
void key3() {}
|
|
};
|
|
|
|
template<typename T> void key5(T t) {}
|
|
|
|
%}
|
|
|
|
%template(KlassBDouble) KlassB<double>;
|
|
%template(KlassCInt) KlassC<double>;
|
|
%template(key5renamed) key5<double>;
|
|
|
|
// These should create a single warning for each keyword...
|
|
%inline %{
|
|
struct ClassA {
|
|
void key1() {}
|
|
void key2() {}
|
|
void key3() {}
|
|
template<typename X> void key4(X x) {}
|
|
};
|
|
|
|
template<class T> struct ClassB {
|
|
void key1() {}
|
|
void key2() {}
|
|
void key3() {}
|
|
};
|
|
|
|
template<class T> struct ClassC {};
|
|
template<> struct ClassC<double> {
|
|
void key1() {}
|
|
void key2() {}
|
|
void key3() {}
|
|
};
|
|
%}
|
|
|
|
%template(ClassBDouble) ClassB<double>;
|
|
%template(ClassCInt) ClassC<double>;
|
|
%template(key5) key5<int>;
|