diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 9e43f1a..ba6e035 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -30,10 +30,10 @@ jobs:
- name: Checkout
uses: actions/checkout@v3
- name: Install Boost
- uses: MarkusJx/install-boost@v2.4.4
+ uses: MarkusJx/install-boost@v2.4.5
id: install-boost
with:
- boost_version: 1.81.0
+ boost_version: 1.83.0
- name: Test
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
shell: bash
diff --git a/README.md b/README.md
index 78340a0..0235f8a 100644
--- a/README.md
+++ b/README.md
@@ -593,6 +593,19 @@ mostly irrelevent.
Change Log
+
+2024-02-19 |
+v1.4.0 |
+
+
+Add `hffix::message_writer::push_back_header()` for `string_view`,
+and `hffix::field_value::as_string_view()`
+by [Slawomir Kuzniar @skuzniar](https://github.com/skuzniar)
+(#51)
+
+ |
+
+
2023-04-28 |
v1.3.0 |
diff --git a/include/hffix.hpp b/include/hffix.hpp
index 3915ef4..64bbf5f 100644
--- a/include/hffix.hpp
+++ b/include/hffix.hpp
@@ -391,10 +391,10 @@ inline bool atotime_nano(
\tparam Duration a std::chrono::duration type used to measure the time since epoch
*/
template
-struct is_time_point : std::false_type {};
+struct is_time_point : std::false_type {};
template
-struct is_time_point> : std::true_type {};
+struct is_time_point> : std::true_type {};
/*
\brief Internal ascii-to-timepoint conversion with millisecond precision.
@@ -742,6 +742,17 @@ class message_writer {
}
#if __cplusplus >= 201703L
+ /*!
+ * \brief Write the _BeginString_ and _BodyLength_ fields to the buffer.
+ *
+ * This method must be called before any other `push_back` method. It may only be called once for each message_writer.
+ *
+ * \pre No other `push_back` method has yet been called.
+ * \param begin_string_version The value for the BeginString FIX field. Should probably be "FIX.4.2" or "FIX.4.3" or "FIX.4.4" or "FIXT.1.1" (for FIX 5.0).
+ *
+ * \throw std::out_of_range When the remaining buffer size is too small.
+ * \throw std::logic_error When called more than once for a single message.
+ */
void push_back_header(std::string_view begin_string_version) {
if (body_length_) throw std::logic_error("hffix message_writer.push_back_header called twice");
if (buffer_end_ - next_ < 2 + std::ptrdiff_t(begin_string_version.size()) + 3 + 7) {