Bugfix/odr violations (#47)

* Make common non-member functions inline, remove unreachable line from get_line_buffer

* [skip ci] Fix namespace comments
This commit is contained in:
red0124
2024-03-12 10:22:10 +01:00
committed by GitHub
parent 1b9a01f787
commit 457defadaa
17 changed files with 41 additions and 49 deletions

View File

@@ -45,7 +45,7 @@ inline ssize_t get_line_file(char*& lineptr, size_t& n, FILE* file) {
using ssize_t = intptr_t;
ssize_t get_line_file(char*& lineptr, size_t& n, FILE* file) {
inline ssize_t get_line_file(char*& lineptr, size_t& n, FILE* file) {
char buff[get_line_initial_buffer_size];
if (lineptr == nullptr || n < sizeof(buff)) {
@@ -81,7 +81,7 @@ ssize_t get_line_file(char*& lineptr, size_t& n, FILE* file) {
#endif
ssize_t get_line_buffer(char*& lineptr, size_t& n,
inline ssize_t get_line_buffer(char*& lineptr, size_t& n,
const char* const csv_data_buffer, size_t csv_data_size,
size_t& curr_char) {
if (curr_char >= csv_data_size) {
@@ -114,15 +114,11 @@ ssize_t get_line_buffer(char*& lineptr, size_t& n,
}
}
if (line_used != 0) {
lineptr[line_used] = '\0';
return line_used;
}
return -1;
lineptr[line_used] = '\0';
return line_used;
}
std::tuple<ssize_t, bool> get_line(char*& buffer, size_t& buffer_size,
inline std::tuple<ssize_t, bool> get_line(char*& buffer, size_t& buffer_size,
FILE* file,
const char* const csv_data_buffer,
size_t csv_data_size, size_t& curr_char) {
@@ -145,4 +141,4 @@ std::tuple<ssize_t, bool> get_line(char*& buffer, size_t& buffer_size,
return {ssize, false};
}
} /* ss */
} /* namespace ss */

View File

@@ -493,4 +493,4 @@ private:
size_t number_of_columns_;
};
} /* ss */
} /* namespace ss */

View File

@@ -20,4 +20,4 @@ public:
}
};
} /* ss */
} /* namespace ss */

View File

@@ -142,7 +142,7 @@ template <typename T>
struct unsupported_type {
constexpr static bool value = false;
};
} /* namespace */
} /* namespace errors */
template <typename T>
std::enable_if_t<!std::is_integral_v<T> && !std::is_floating_point_v<T> &&
@@ -247,4 +247,4 @@ inline bool extract(const char* begin, const char* end,
return true;
}
} /* ss */
} /* namespace ss */

View File

@@ -77,4 +77,4 @@ struct member_wrapper<R T::*> {
template <typename T> \
constexpr bool has_m_##method##_t = has_m_##method<T>::value;
} /* trait */
} /* namespace ss */

View File

@@ -971,4 +971,4 @@ private:
bool eof_{false};
};
} /* ss */
} /* namespace ss */

View File

@@ -124,4 +124,4 @@ struct ne {
}
};
} /* ss */
} /* namespace ss */

View File

@@ -293,4 +293,4 @@ private:
template <typename... Options>
struct setup<setup<Options...>> : setup<Options...> {};
} /* ss */
} /* namespace ss */

View File

@@ -6,7 +6,6 @@
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include <memory>
#include <string>
#include <vector>
@@ -479,4 +478,4 @@ public:
friend class converter;
};
} /* ss */
} /* namespace ss */

View File

@@ -378,4 +378,4 @@ T to_object(U&& data) {
}
}
} /* trait */
} /* namespace ss */