@@ -181,8 +181,34 @@ class MbedCRC {
181181 {
182182 }
183183
184- MSTD_CONSTEXPR_FN_14
185- MbedCRC ();
184+ /* Default values for different types of polynomials
185+ */
186+ // *INDENT-OFF*
187+ template <uint32_t poly = polynomial, mstd::enable_if_t <poly == POLY_32BIT_ANSI && width == 32 , int > = 0 >
188+ MSTD_CONSTEXPR_FN_14 MbedCRC () : MbedCRC(0xFFFFFFFF , 0xFFFFFFFF , true , true )
189+ {
190+ }
191+
192+ template <uint32_t poly = polynomial, mstd::enable_if_t <poly == POLY_16BIT_IBM && width == 16 , int > = 0 >
193+ MSTD_CONSTEXPR_FN_14 MbedCRC () : MbedCRC(0 , 0 , true , true )
194+ {
195+ }
196+
197+ template <uint32_t poly = polynomial, mstd::enable_if_t <poly == POLY_16BIT_CCITT && width == 16 , int > = 0 >
198+ MSTD_CONSTEXPR_FN_14 MbedCRC () : MbedCRC(0xFFFF , 0 , false , false )
199+ {
200+ }
201+
202+ template <uint32_t poly = polynomial, mstd::enable_if_t <poly == POLY_7BIT_SD && width == 7 , int > = 0 >
203+ MSTD_CONSTEXPR_FN_14 MbedCRC () : MbedCRC(0 , 0 , false , false )
204+ {
205+ }
206+
207+ template <uint32_t poly = polynomial, mstd::enable_if_t <poly == POLY_8BIT_CCITT && width == 8 , int > = 0 >
208+ MSTD_CONSTEXPR_FN_14 MbedCRC () : MbedCRC(0 , 0 , false , false )
209+ {
210+ }
211+ // *INDENT-ON*
186212
187213 /* * Compute CRC for the data input
188214 * Compute CRC performs the initialization, computation and collection of
@@ -837,38 +863,6 @@ const uint32_t MbedCRC<POLY_32BIT_ANSI, 32, CrcMode::TABLE>::_crc_table[MBED_CRC
837863
838864#endif // !defined(DOXYGEN_ONLY)
839865
840- /* Default values for different types of polynomials
841- */
842- template <>
843- inline MSTD_CONSTEXPR_FN_14
844- MbedCRC<POLY_32BIT_ANSI, 32 >::MbedCRC() : MbedCRC(0xFFFFFFFF , 0xFFFFFFFF , true , true )
845- {
846- }
847-
848- template <>
849- inline MSTD_CONSTEXPR_FN_14
850- MbedCRC<POLY_16BIT_IBM, 16 >::MbedCRC() : MbedCRC(0 , 0 , true , true )
851- {
852- }
853-
854- template <>
855- inline MSTD_CONSTEXPR_FN_14
856- MbedCRC<POLY_16BIT_CCITT, 16 >::MbedCRC() : MbedCRC(0xFFFF , 0 , false , false )
857- {
858- }
859-
860- template <>
861- inline MSTD_CONSTEXPR_FN_14
862- MbedCRC<POLY_7BIT_SD, 7 >::MbedCRC(): MbedCRC(0 , 0 , false , false )
863- {
864- }
865-
866- template <>
867- inline MSTD_CONSTEXPR_FN_14
868- MbedCRC<POLY_8BIT_CCITT, 8 >::MbedCRC(): MbedCRC(0 , 0 , false , false )
869- {
870- }
871-
872866/* * @}*/
873867/* * @}*/
874868
0 commit comments