C++11 test fixes for Visual Studio 2017

This commit is contained in:
William S Fulton 2019-04-08 19:33:59 +01:00
parent 0303e821ef
commit bf9065395a
3 changed files with 19 additions and 11 deletions

View File

@ -19,17 +19,17 @@ template<typename T> struct Y {
typedef T2 another_type;
};
value_type create1() const { return T(); }
Y::value_type create2() const { return T(); }
Y<T>::value_type create3() const { return T(); }
YY::value_type create4() const { return T(); }
Y<T>::YY::value_type create5() const { return T(); }
typename Y::value_type create2() const { return T(); }
typename Y<T>::value_type create3() const { return T(); }
typename YY::value_type create4() const { return T(); }
typename Y<T>::YY::value_type create5() 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(); }
// 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(); }
typename ::Y<T>::template ZZZ<T>::another_type create17() const { return T(); }
};

View File

@ -4,7 +4,8 @@
struct A {
int member;
};
const int align1 = alignof(A::member);
const int align1 = alignof(int);
const int align2 = alignof(int *);
%}
%{

View File

@ -8,7 +8,8 @@
%inline %{
template<typename T> struct Temper {
template<typename T> class Temper {
public:
T val;
};
@ -18,14 +19,20 @@ public:
int memberFunction() { return 100; }
};
class B {
public:
short member;
short memberFunction() { return 100; }
};
template class Temper<A>;
extern template class Temper<A>;
extern template class Temper<B>;
template class Temper<A*>;
extern template class Temper<A*>;
extern template class Temper<B*>;
template class Temper<int>;
extern template class Temper<int>;
extern template class Temper<short>;
%}
%template(TemperInt) Temper<int>;