@@ -52,6 +52,8 @@ namespace csv {
5252 * Intended for functions and methods.
5353 */
5454
55+ #define STATIC_ASSERT (x ) static_assert (x, " Assertion failed" )
56+
5557#if CMAKE_CXX_STANDARD == 17 || __cplusplus >= 201703L
5658#define CSV_HAS_CXX17
5759#endif
@@ -177,22 +179,22 @@ namespace csv {
177179
178180 // Assumed to be true by parsing functions: allows for testing
179181 // if an item is DELIMITER or NEWLINE with a >= statement
180- static_assert (ParseFlags::DELIMITER < ParseFlags::NEWLINE);
182+ STATIC_ASSERT (ParseFlags::DELIMITER < ParseFlags::NEWLINE);
181183
182184 /* * Optimizations for reducing branching in parsing loop
183185 *
184186 * Idea: The meaning of all non-quote characters changes depending
185187 * on whether or not the parser is in a quote-escaped mode (0 or 1)
186188 */
187- static_assert (quote_escape_flag(ParseFlags::NOT_SPECIAL, false ) == ParseFlags::NOT_SPECIAL);
188- static_assert (quote_escape_flag(ParseFlags::QUOTE, false ) == ParseFlags::QUOTE);
189- static_assert (quote_escape_flag(ParseFlags::DELIMITER, false ) == ParseFlags::DELIMITER);
190- static_assert (quote_escape_flag(ParseFlags::NEWLINE, false ) == ParseFlags::NEWLINE);
191-
192- static_assert (quote_escape_flag(ParseFlags::NOT_SPECIAL, true ) == ParseFlags::NOT_SPECIAL);
193- static_assert (quote_escape_flag(ParseFlags::QUOTE, true ) == ParseFlags::QUOTE_ESCAPE_QUOTE);
194- static_assert (quote_escape_flag(ParseFlags::DELIMITER, true ) == ParseFlags::NOT_SPECIAL);
195- static_assert (quote_escape_flag(ParseFlags::NEWLINE, true ) == ParseFlags::NOT_SPECIAL);
189+ STATIC_ASSERT (quote_escape_flag(ParseFlags::NOT_SPECIAL, false ) == ParseFlags::NOT_SPECIAL);
190+ STATIC_ASSERT (quote_escape_flag(ParseFlags::QUOTE, false ) == ParseFlags::QUOTE);
191+ STATIC_ASSERT (quote_escape_flag(ParseFlags::DELIMITER, false ) == ParseFlags::DELIMITER);
192+ STATIC_ASSERT (quote_escape_flag(ParseFlags::NEWLINE, false ) == ParseFlags::NEWLINE);
193+
194+ STATIC_ASSERT (quote_escape_flag(ParseFlags::NOT_SPECIAL, true ) == ParseFlags::NOT_SPECIAL);
195+ STATIC_ASSERT (quote_escape_flag(ParseFlags::QUOTE, true ) == ParseFlags::QUOTE_ESCAPE_QUOTE);
196+ STATIC_ASSERT (quote_escape_flag(ParseFlags::DELIMITER, true ) == ParseFlags::NOT_SPECIAL);
197+ STATIC_ASSERT (quote_escape_flag(ParseFlags::NEWLINE, true ) == ParseFlags::NOT_SPECIAL);
196198
197199 /* * An array which maps ASCII chars to a parsing flag */
198200 using ParseFlagMap = std::array<ParseFlags, 256 >;
0 commit comments