https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95301
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- 95301.cc:1:24: error: 'int_fast64_t' does not name a type 1 | template< typename T = int_fast64_t, T zero = 0 > | ^~~~~~~~~~~~ 95301.cc:14:10: error: explicit specialization in non-namespace scope 'class range<T, v>' 14 | template<> | ^ 95301.cc:15:8: error: 'box_root' is not a class template 15 | struct box_root< bool > : _box_root< bool > {}; | ^~~~~~~~ 95301.cc:15:36: error: expected template-name before '<' token 15 | struct box_root< bool > : _box_root< bool > {}; | ^ 95301.cc:15:36: error: expected '{' before '<' token 95301.cc:15:36: error: expected unqualified-id before '<' token 95301.cc:17:11: error: declaration of template parameter 'T' shadows template parameter 17 | template< typename T > | ^~~~~~~~ 95301.cc:4:11: note: template parameter 'T' declared here 4 | template< typename T, T v > | ^~~~~~~~ 95301.cc:18:8: error: too many template-parameter-lists 18 | struct _no_inline_box_init : T {}; | ^~~~~~~~~~~~~~~~~~~ 95301.cc:20:11: error: declaration of template parameter 'T' shadows template parameter 20 | template< typename T > | ^~~~~~~~ 95301.cc:4:11: note: template parameter 'T' declared here 4 | template< typename T, T v > | ^~~~~~~~ 95301.cc:21:8: error: too many template-parameter-lists 21 | struct _no_inline_box_write : T {}; | ^~~~~~~~~~~~~~~~~~~~ 95301.cc:23:11: error: declaration of template parameter 'T' shadows template parameter 23 | template< typename T > | ^~~~~~~~ 95301.cc:4:11: note: template parameter 'T' declared here 4 | template< typename T, T v > | ^~~~~~~~ 95301.cc:24:8: error: too many template-parameter-lists 24 | struct _no_inline_box_read : T {}; | ^~~~~~~~~~~~~~~~~~~ 95301.cc:26:11: error: declaration of template parameter 'T' shadows template parameter 26 | template< typename T > | ^~~~~~~~ 95301.cc:4:11: note: template parameter 'T' declared here 4 | template< typename T, T v > | ^~~~~~~~ 95301.cc:27:8: error: too many template-parameter-lists 27 | struct _no_inline_box_direction : T {}; | ^~~~~~~~~~~~~~~~~~~~~~~~ 95301.cc:29:11: error: declaration of template parameter 'T' shadows template parameter 29 | template< typename T > | ^~~~~~~~ 95301.cc:4:11: note: template parameter 'T' declared here 4 | template< typename T, T v > | ^~~~~~~~ 95301.cc:31:4: error: '_no_inline_box_init' does not name a type 31 | _no_inline_box_init< | ^~~~~~~~~~~~~~~~~~~ 95301.cc:35: error: expected '}' at end of input 95301.cc:5:13: note: to match this '{' 5 | class range { | ^ 95301.cc: In constructor 'range<T, v>::range(xy<T, v>)': 95301.cc:10:14: error: 'limit' is not a class, namespace, or enumeration 10 | start( limit::zero, limit( limit ) // wovo missing ) after zero | ^~~~~ 95301.cc:10:41: error: expected ')' before '{' token 10 | start( limit::zero, limit( limit ) // wovo missing ) after zero | ~ ^ | ) 11 | {} | ~ 95301.cc:12:1: error: expected '{' before '}' token 12 | }; | ^ 95301.cc: At global scope: 95301.cc:34:40: error: expected ';' at end of input 34 | _no_inline_box_direction< T > > > >; | ^ | ;