@@ -25,14 +25,14 @@ def endianness_single(writer: IndentedFileWriter) -> None:
2525
2626 writer .c_comment ("No action for byte-sized primitives." )
2727 writer .write (
28- "template <byte_size T, std::endian endianness> "
28+ "template <std::endian endianness, byte_size T > "
2929 "inline void handle_endian_p(T *)"
3030 )
3131 with writer .scope ():
3232 pass
3333
3434 writer .write (
35- "template <byte_size T, std::endian endianness> "
35+ "template <std::endian endianness, byte_size T > "
3636 "inline T handle_endian(T elem)"
3737 )
3838 with writer .scope ():
@@ -43,7 +43,7 @@ def endianness_native(writer: IndentedFileWriter) -> None:
4343 """Add methods for native endianness (no swap)."""
4444
4545 writer .c_comment ("No action if endianness is native." )
46- writer .write ("template <std::integral T , std::endian endianness >" )
46+ writer .write ("template <std::endian endianness , std::integral T >" )
4747 writer .write ("inline void handle_endian_p(T *)" )
4848 with writer .indented ():
4949 writer .write (
@@ -53,7 +53,7 @@ def endianness_native(writer: IndentedFileWriter) -> None:
5353 with writer .scope ():
5454 pass
5555
56- writer .write ("template <std::integral T , std::endian endianness >" )
56+ writer .write ("template <std::endian endianness , std::integral T >" )
5757 writer .write ("inline T handle_endian(T elem)" )
5858 with writer .indented ():
5959 writer .write (
@@ -69,7 +69,7 @@ def endianness_integral(writer: IndentedFileWriter) -> None:
6969
7070 writer .c_comment ("Swap any integral type." )
7171
72- writer .write ("template <std::integral T , std::endian endianness >" )
72+ writer .write ("template <std::endian endianness , std::integral T >" )
7373 writer .write ("inline T handle_endian(T elem)" )
7474 with writer .indented ():
7575 writer .write (
@@ -78,7 +78,7 @@ def endianness_integral(writer: IndentedFileWriter) -> None:
7878 with writer .scope ():
7979 writer .write ("return std::byteswap(elem);" )
8080
81- writer .write ("template <std::integral T , std::endian endianness >" )
81+ writer .write ("template <std::endian endianness , std::integral T >" )
8282 writer .write ("inline void handle_endian_p(T *elem)" )
8383 with writer .indented ():
8484 writer .write (
@@ -92,25 +92,22 @@ def endianness_enum(writer: IndentedFileWriter) -> None:
9292 """Add methods for enum types that require swapping."""
9393
9494 writer .c_comment ("Handler for enum class types." )
95- writer .write ("template <typename T, std::endian endianness>" )
95+ writer .write ("template <std::endian endianness, typename T >" )
9696 writer .write ("inline void handle_endian_p(T *elem)" )
9797 with writer .indented ():
9898 writer .write ("requires(std::is_enum_v<T>)" )
9999 with writer .scope ():
100100 writer .write ("using underlying = std::underlying_type_t<T>;" )
101- writer .write ("handle_endian_p<underlying, endianness>(" )
101+ writer .write ("handle_endian_p<endianness>(" )
102102 with writer .indented ():
103103 writer .write ("reinterpret_cast<underlying *>(elem));" )
104104
105- writer .write ("template <typename T, std::endian endianness>" )
105+ writer .write ("template <std::endian endianness, typename T >" )
106106 writer .write ("inline T handle_endian(T elem)" )
107107 with writer .indented ():
108108 writer .write ("requires(std::is_enum_v<T>)" )
109109 with writer .scope ():
110- writer .write (
111- "return static_cast<T>(handle_endian<std::underlying_type_t<T>, "
112- "endianness>("
113- )
110+ writer .write ("return static_cast<T>(handle_endian<endianness>(" )
114111 with writer .indented ():
115112 writer .write ("std::to_underlying(elem)));" )
116113
@@ -122,7 +119,7 @@ def endianness_float(writer: IndentedFileWriter) -> None:
122119 writer .empty ()
123120 writer .c_comment (f"Handler for { width } -bit float." )
124121 writer .write (
125- "template <std::floating_point T , std::endian endianness >"
122+ "template <std::endian endianness , std::floating_point T >"
126123 )
127124 writer .write ("inline void handle_endian_p(T *elem)" )
128125
@@ -132,12 +129,12 @@ def endianness_float(writer: IndentedFileWriter) -> None:
132129 writer .write (f"requires(sizeof(T) == sizeof({ prim } ))" )
133130 with writer .scope ():
134131 writer .write (
135- f"handle_endian_p<{ prim } , endianness>"
132+ f"handle_endian_p<endianness>"
136133 f"(reinterpret_cast<{ prim } *>(elem));"
137134 )
138135
139136 writer .write (
140- "template <std::floating_point T , std::endian endianness >"
137+ "template <std::endian endianness , std::floating_point T >"
141138 )
142139 writer .write ("inline T handle_endian(T elem)" )
143140 with writer .indented ():
@@ -146,7 +143,7 @@ def endianness_float(writer: IndentedFileWriter) -> None:
146143 writer .write ("return std::bit_cast<T>(" )
147144 with writer .indented ():
148145 writer .write (
149- f "handle_endian<{ prim } , endianness>"
146+ "handle_endian<endianness>"
150147 f"(std::bit_cast<{ prim } >(elem)));"
151148 )
152149
0 commit comments