Created attachment 41629 [details] unreduced unincluded testcase Works with G++6, fails with G++7 with In file included from /usr/include/boost/geometry/geometries/helper_geometry.hpp:21:0, from /usr/include/boost/geometry/algorithms/detail/disjoint/point_point.hpp:41, from /usr/include/boost/geometry/algorithms/detail/equals/point_point.hpp:24, from /usr/include/boost/geometry/strategies/cartesian/intersection.hpp:29, from /usr/include/boost/geometry/strategies/intersection_strategies.hpp:28, from /usr/include/boost/geometry/strategies/strategies.hpp:37, from /usr/include/boost/geometry/geometry.hpp:50, from /usr/include/boost/geometry.hpp:17, from test.cpp:9: /usr/include/boost/geometry/geometries/point.hpp: In static member function ‘static void boost::geometry::traits::access<boost::geometry::model::point<CoordinateType, DimensionCount, CoordinateSystem>, Dimension>::set(boost::geometry::model::point<CoordinateType, DimensionCount, CoordinateSystem>&, const CoordinateType&)’: /usr/include/boost/geometry/geometries/point.hpp:290:33: error: type/value mismatch at argument 1 in template parameter list for ‘template<class _Key, class _Compare, class _Alloc> class std::set’ /usr/include/boost/geometry/geometries/point.hpp:290:33: note: expected a type, got ‘Dimension’ /usr/include/boost/geometry/geometries/point.hpp:290:33: error: template argument 2 is invalid /usr/include/boost/geometry/geometries/point.hpp:290:33: error: template argument 3 is invalid In file included from /usr/include/boost/geometry/algorithms/detail/normalize.hpp:27:0, from /usr/include/boost/geometry/algorithms/detail/disjoint/point_point.hpp:45, from /usr/include/boost/geometry/algorithms/detail/equals/point_point.hpp:24, from /usr/include/boost/geometry/strategies/cartesian/intersection.hpp:29, from /usr/include/boost/geometry/strategies/intersection_strategies.hpp:28, from /usr/include/boost/geometry/strategies/strategies.hpp:37, from /usr/include/boost/geometry/geometry.hpp:50, from /usr/include/boost/geometry.hpp:17, from test.cpp:9: /usr/include/boost/geometry/views/detail/indexed_point_view.hpp: In static member function ‘static void boost::geometry::traits::access<boost::geometry::detail::indexed_point_view<Geometry, Index>, Dimension>::set(boost::geometry::detail::indexed_point_view<Geometry, Index>&, const coordinate_type&)’: /usr/include/boost/geometry/views/detail/indexed_point_view.hpp:113:33: error: type/value mismatch at argument 1 in template parameter list for ‘template<class _Key, class _Compare, class _Alloc> class std::set’ ...
Original boost testcase: #include <iostream> #include <set> using namespace std; #include <boost/geometry.hpp> #include <boost/numeric/ublas/blas.hpp> int main() { cout << "Hello World!" << endl; return 0; } clang++4 is said to accept the code as well.
Started with r236221
Reduced: namespace std { template<typename, typename> struct set { }; } using namespace std; template <int I, typename Result> inline void set(Result & res) { res.template set<I>(); }
dup of PR 81026?
Author: jason Date: Wed Jun 28 19:41:18 2017 New Revision: 249750 URL: https://gcc.gnu.org/viewcvs?rev=249750&root=gcc&view=rev Log: PR c++/81204 - parse error with dependent template-name * parser.c (cp_parser_lookup_name): Disqualify function templates after lookup. Added: trunk/gcc/testsuite/g++.dg/template/lookup10.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/parser.c
Author: jason Date: Wed Jun 28 21:08:43 2017 New Revision: 249761 URL: https://gcc.gnu.org/viewcvs?rev=249761&root=gcc&view=rev Log: PR c++/81204 - parse error with dependent template-name * parser.c (cp_parser_lookup_name): Disqualify function templates after lookup. Added: branches/gcc-7-branch/gcc/testsuite/g++.dg/template/lookup10.C Modified: branches/gcc-7-branch/gcc/cp/ChangeLog branches/gcc-7-branch/gcc/cp/parser.c
Fixed for 7.2.
Author: jason Date: Thu Jul 6 18:26:59 2017 New Revision: 250037 URL: https://gcc.gnu.org/viewcvs?rev=250037&root=gcc&view=rev Log: PR c++/81204 - parse error with dependent template-name * parser.c (cp_parser_lookup_name): Revert previous change. Added: trunk/gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn2.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/parser.c
Author: jason Date: Thu Jul 6 18:27:05 2017 New Revision: 250038 URL: https://gcc.gnu.org/viewcvs?rev=250038&root=gcc&view=rev Log: PR c++/81204 - parse error with dependent template-name * parser.c (cp_parser_lookup_name): Revert previous change. Added: branches/gcc-7-branch/gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn2.C Modified: branches/gcc-7-branch/gcc/cp/ChangeLog branches/gcc-7-branch/gcc/cp/parser.c
(still fixed, by the patch for bug 54769)