@@ -186,8 +186,34 @@ class MbedCRC {
186186 {
187187 }
188188
189- constexpr
190- MbedCRC ();
189+ /* Default values for different types of polynomials
190+ */
191+ // *INDENT-OFF*
192+ template <uint32_t poly = polynomial, std::enable_if_t <poly == POLY_32BIT_ANSI && width == 32 , int > = 0 >
193+ constexpr MbedCRC () : MbedCRC(0xFFFFFFFF , 0xFFFFFFFF , true , true )
194+ {
195+ }
196+
197+ template <uint32_t poly = polynomial, std::enable_if_t <poly == POLY_16BIT_IBM && width == 16 , int > = 0 >
198+ constexpr MbedCRC () : MbedCRC(0 , 0 , true , true )
199+ {
200+ }
201+
202+ template <uint32_t poly = polynomial, std::enable_if_t <poly == POLY_16BIT_CCITT && width == 16 , int > = 0 >
203+ constexpr MbedCRC () : MbedCRC(0xFFFF , 0 , false , false )
204+ {
205+ }
206+
207+ template <uint32_t poly = polynomial, std::enable_if_t <poly == POLY_7BIT_SD && width == 7 , int > = 0 >
208+ constexpr MbedCRC () : MbedCRC(0 , 0 , false , false )
209+ {
210+ }
211+
212+ template <uint32_t poly = polynomial, std::enable_if_t <poly == POLY_8BIT_CCITT && width == 8 , int > = 0 >
213+ constexpr MbedCRC () : MbedCRC(0 , 0 , false , false )
214+ {
215+ }
216+ // *INDENT-ON*
191217
192218 /* * Compute CRC for the data input
193219 * Compute CRC performs the initialization, computation and collection of
@@ -842,38 +868,6 @@ const uint32_t MbedCRC<POLY_32BIT_ANSI, 32, CrcMode::TABLE>::_crc_table[MBED_CRC
842868
843869#endif // !defined(DOXYGEN_ONLY)
844870
845- /* Default values for different types of polynomials
846- */
847- template <>
848- inline MSTD_CONSTEXPR_FN_14
849- MbedCRC<POLY_32BIT_ANSI, 32 >::MbedCRC() : MbedCRC(0xFFFFFFFF , 0xFFFFFFFF , true , true )
850- {
851- }
852-
853- template <>
854- inline MSTD_CONSTEXPR_FN_14
855- MbedCRC<POLY_16BIT_IBM, 16 >::MbedCRC() : MbedCRC(0 , 0 , true , true )
856- {
857- }
858-
859- template <>
860- inline MSTD_CONSTEXPR_FN_14
861- MbedCRC<POLY_16BIT_CCITT, 16 >::MbedCRC() : MbedCRC(0xFFFF , 0 , false , false )
862- {
863- }
864-
865- template <>
866- inline MSTD_CONSTEXPR_FN_14
867- MbedCRC<POLY_7BIT_SD, 7 >::MbedCRC(): MbedCRC(0 , 0 , false , false )
868- {
869- }
870-
871- template <>
872- inline MSTD_CONSTEXPR_FN_14
873- MbedCRC<POLY_8BIT_CCITT, 8 >::MbedCRC(): MbedCRC(0 , 0 , false , false )
874- {
875- }
876-
877871/* * @}*/
878872/* * @}*/
879873
0 commit comments