mirror of https://github.com/swig/swig
C++11 test fixes for Visual Studio 2017
This commit is contained in:
parent
0303e821ef
commit
bf9065395a
|
@ -19,17 +19,17 @@ template<typename T> struct Y {
|
||||||
typedef T2 another_type;
|
typedef T2 another_type;
|
||||||
};
|
};
|
||||||
value_type create1() const { return T(); }
|
value_type create1() const { return T(); }
|
||||||
Y::value_type create2() const { return T(); }
|
typename Y::value_type create2() const { return T(); }
|
||||||
Y<T>::value_type create3() const { return T(); }
|
typename Y<T>::value_type create3() const { return T(); }
|
||||||
YY::value_type create4() const { return T(); }
|
typename YY::value_type create4() const { return T(); }
|
||||||
Y<T>::YY::value_type create5() const { return T(); }
|
typename Y<T>::YY::value_type create5() const { return T(); }
|
||||||
Y<T>::YYY<T>::value_type create6() const { return T(); }
|
Y<T>::YYY<T>::value_type create6() const { return T(); }
|
||||||
typename Y<T>::template ZZZ<T>::another_type create7() const { return T(); }
|
typename Y<T>::template ZZZ<T>::another_type create7() const { return T(); }
|
||||||
|
|
||||||
// With global scope prefix
|
// With global scope prefix
|
||||||
::Y<T>::value_type create13() const { return T(); }
|
typename ::Y<T>::value_type create13() const { return T(); }
|
||||||
|
|
||||||
::Y<T>::YY::value_type create15() const { return T(); }
|
typename ::Y<T>::YY::value_type create15() const { return T(); }
|
||||||
::Y<T>::YYY<T>::value_type create16() const { return T(); }
|
::Y<T>::YYY<T>::value_type create16() const { return T(); }
|
||||||
typename ::Y<T>::template ZZZ<T>::another_type create17() const { return T(); }
|
typename ::Y<T>::template ZZZ<T>::another_type create17() const { return T(); }
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,7 +4,8 @@
|
||||||
struct A {
|
struct A {
|
||||||
int member;
|
int member;
|
||||||
};
|
};
|
||||||
const int align1 = alignof(A::member);
|
const int align1 = alignof(int);
|
||||||
|
const int align2 = alignof(int *);
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%{
|
%{
|
||||||
|
|
|
@ -8,7 +8,8 @@
|
||||||
|
|
||||||
%inline %{
|
%inline %{
|
||||||
|
|
||||||
template<typename T> struct Temper {
|
template<typename T> class Temper {
|
||||||
|
public:
|
||||||
T val;
|
T val;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -18,14 +19,20 @@ public:
|
||||||
int memberFunction() { return 100; }
|
int memberFunction() { return 100; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class B {
|
||||||
|
public:
|
||||||
|
short member;
|
||||||
|
short memberFunction() { return 100; }
|
||||||
|
};
|
||||||
|
|
||||||
template class Temper<A>;
|
template class Temper<A>;
|
||||||
extern template class Temper<A>;
|
extern template class Temper<B>;
|
||||||
|
|
||||||
template class Temper<A*>;
|
template class Temper<A*>;
|
||||||
extern template class Temper<A*>;
|
extern template class Temper<B*>;
|
||||||
|
|
||||||
template class Temper<int>;
|
template class Temper<int>;
|
||||||
extern template class Temper<int>;
|
extern template class Temper<short>;
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%template(TemperInt) Temper<int>;
|
%template(TemperInt) Temper<int>;
|
||||||
|
|
Loading…
Reference in New Issue