Filed as http://llvm.org/bugs/show_bug.cgi?id=18009 - thanks very much!
JDO On Nov 19, 2013, at 3:18 PM, Richard Smith <[email protected]> wrote: > Reduced testcase: > > template<int A> struct outer { > template<int B, int C> struct inner {}; > template<int C> struct inner<A * 2, C> {}; > }; > > Yes, this is valid code. Please file a bug! > > You can work around this by hiding the non-type template argument in a type > template argument: > > template<int N> struct Int { static const int value = N; }; > > template<int A> struct outer { > template<typename B, int C> struct inner {}; > template<int C> struct inner<Int<A * 2>, C> {}; > }; > > > On Tue, Nov 19, 2013 at 8:31 AM, John Owens <[email protected]> wrote: > Thanks John, and thanks to Don Hinton who had an offline suggestion to use > default values for template parameters. We’re happy to take any suggestions > we can / inspire clang toward handling a few more cases! > > JDO > > On Nov 19, 2013, at 8:25 AM, Fletcher, John P <[email protected]> > wrote: > > > John > > > > I am copying this to the developers list which has a much higher traffic > > and where they are interested in things wrong with clang. > > > > John Fletcher > > > > -----Original Message----- > > From: [email protected] [mailto:[email protected]] > > On Behalf Of John Owens > > Sent: 15 November 2013 22:23 > > To: [email protected] > > Subject: [cfe-users] error: non-type template argument depends on a > > template parameter of the partial specialization > > > > Greetings! > > > > We're about to release a graph library for GPUs. The library compiles fine > > on, well, everything except clang (I'm using OS X), and it's because clang > > does not support the same template feature set as other compilers. ("error: > > non-type template argument depends on a template parameter of the partial > > specialization") > > > > Here's the issue and the reply from Duane Merrill at NVIDIA: > > > > https://github.com/gunrock/gunrock/issues/1 > > > > (I'll append a short version of it below.) > > > > What I'd love to know is "is this something that clang will support in the > > near future / is there an easy clang workaround". If neither is true, > > perhaps we do some refactoring, per Duane's suggestion. But if either is > > true, that would ease our support issues. > > > > JDO > > > > > > load_tile.cuh:207: > > > > template <int LOAD, int dummy> > > struct Iterate<LOAD, LOAD_VEC_SIZE, dummy> > > > > The error I'm getting is: > > > > ../../gunrock/util/io/load_tile.cuh:207:23: error: non-type template > > argument > > depends on a template parameter of the partial specialization > > _______________________________________________ > > cfe-users mailing list > > [email protected] > > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-users > > > > > > > _______________________________________________ > cfe-dev mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev > _______________________________________________ cfe-users mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-users
