@@ -181,8 +181,32 @@ class MbedCRC {
181181 {
182182 }
183183
184- MSTD_CONSTEXPR_FN_14
185- MbedCRC ();
184+ /* Default values for different types of polynomials
185+ */
186+ template <uint32_t poly = polynomial, mstd::enable_if_t <poly == POLY_32BIT_ANSI && width == 32 , int > = 0 >
187+ MSTD_CONSTEXPR_FN_14 MbedCRC () : MbedCRC(0xFFFFFFFF , 0xFFFFFFFF , true , true )
188+ {
189+ }
190+
191+ template <uint32_t poly = polynomial, mstd::enable_if_t <poly == POLY_16BIT_IBM && width == 16 , int > = 0 >
192+ MSTD_CONSTEXPR_FN_14 MbedCRC () : MbedCRC(0 , 0 , true , true )
193+ {
194+ }
195+
196+ template <uint32_t poly = polynomial, mstd::enable_if_t <poly == POLY_16BIT_CCITT && width == 16 , int > = 0 >
197+ MSTD_CONSTEXPR_FN_14 MbedCRC () : MbedCRC(0xFFFF , 0 , false , false )
198+ {
199+ }
200+
201+ template <uint32_t poly = polynomial, mstd::enable_if_t <poly == POLY_7BIT_SD && width == 7 , int > = 0 >
202+ MSTD_CONSTEXPR_FN_14 MbedCRC () : MbedCRC(0 , 0 , false , false )
203+ {
204+ }
205+
206+ template <uint32_t poly = polynomial, mstd::enable_if_t <poly == POLY_8BIT_CCITT && width == 8 , int > = 0 >
207+ MSTD_CONSTEXPR_FN_14 MbedCRC () : MbedCRC(0 , 0 , false , false )
208+ {
209+ }
186210
187211 /* * Compute CRC for the data input
188212 * Compute CRC performs the initialization, computation and collection of
@@ -837,38 +861,6 @@ const uint32_t MbedCRC<POLY_32BIT_ANSI, 32, CrcMode::TABLE>::_crc_table[MBED_CRC
837861
838862#endif // !defined(DOXYGEN_ONLY)
839863
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-
872864/* * @}*/
873865/* * @}*/
874866
0 commit comments