From bf9065395a977e2813403dd3040ee91e69141cd0 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Mon, 8 Apr 2019 19:33:59 +0100 Subject: [PATCH] C++11 test fixes for Visual Studio 2017 --- .../cpp11_alias_nested_template_scoping.i | 12 ++++++------ Examples/test-suite/cpp11_alignment.i | 3 ++- Examples/test-suite/cpp11_template_explicit.i | 15 +++++++++++---- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Examples/test-suite/cpp11_alias_nested_template_scoping.i b/Examples/test-suite/cpp11_alias_nested_template_scoping.i index 0cf5ea35a..72814aa88 100644 --- a/Examples/test-suite/cpp11_alias_nested_template_scoping.i +++ b/Examples/test-suite/cpp11_alias_nested_template_scoping.i @@ -19,17 +19,17 @@ template struct Y { typedef T2 another_type; }; value_type create1() const { return T(); } - Y::value_type create2() const { return T(); } - Y::value_type create3() const { return T(); } - YY::value_type create4() const { return T(); } - Y::YY::value_type create5() const { return T(); } + typename Y::value_type create2() const { return T(); } + typename Y::value_type create3() const { return T(); } + typename YY::value_type create4() const { return T(); } + typename Y::YY::value_type create5() const { return T(); } Y::YYY::value_type create6() const { return T(); } typename Y::template ZZZ::another_type create7() const { return T(); } // With global scope prefix - ::Y::value_type create13() const { return T(); } + typename ::Y::value_type create13() const { return T(); } - ::Y::YY::value_type create15() const { return T(); } + typename ::Y::YY::value_type create15() const { return T(); } ::Y::YYY::value_type create16() const { return T(); } typename ::Y::template ZZZ::another_type create17() const { return T(); } }; diff --git a/Examples/test-suite/cpp11_alignment.i b/Examples/test-suite/cpp11_alignment.i index fb25c4ebb..135f63641 100644 --- a/Examples/test-suite/cpp11_alignment.i +++ b/Examples/test-suite/cpp11_alignment.i @@ -4,7 +4,8 @@ struct A { int member; }; -const int align1 = alignof(A::member); +const int align1 = alignof(int); +const int align2 = alignof(int *); %} %{ diff --git a/Examples/test-suite/cpp11_template_explicit.i b/Examples/test-suite/cpp11_template_explicit.i index f8fca4fae..71752f822 100644 --- a/Examples/test-suite/cpp11_template_explicit.i +++ b/Examples/test-suite/cpp11_template_explicit.i @@ -8,7 +8,8 @@ %inline %{ -template struct Temper { +template 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; -extern template class Temper; +extern template class Temper; template class Temper; -extern template class Temper; +extern template class Temper; template class Temper; -extern template class Temper; +extern template class Temper; %} %template(TemperInt) Temper;