From c060d91a08e80f0677c6017348a77bbdff6f7d95 Mon Sep 17 00:00:00 2001 From: Jan Wijffels Date: Wed, 26 Nov 2025 12:05:55 +0100 Subject: [PATCH 1/2] use C++17 --- DESCRIPTION | 2 +- NEWS.md | 4 ++++ src/Makevars | 2 +- src/udpipe.cpp | 16 ++++++++++++++-- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 91950cf..38c3e3f 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,7 +2,7 @@ Package: udpipe Type: Package Title: Tokenization, Parts of Speech Tagging, Lemmatization and Dependency Parsing with the 'UDPipe' 'NLP' Toolkit -Version: 0.8.14 +Version: 0.8.15 Maintainer: Jan Wijffels Authors@R: c( person('Jan', 'Wijffels', role = c('aut', 'cre', 'cph'), email = 'jwijffels@bnosac.be', comment = 'R wrapper'), diff --git a/NEWS.md b/NEWS.md index b78d1f0..87e1626 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,7 @@ +## CHANGES IN udpipe VERSION 0.8.15 + +- Use C++17 instead of C++11 + ## CHANGES IN udpipe VERSION 0.8.14 - Add comment section in Authors@R and put aut instead of ctb for udpipe.cpp part diff --git a/src/Makevars b/src/Makevars index cc40eb2..ae06a75 100644 --- a/src/Makevars +++ b/src/Makevars @@ -1,2 +1,2 @@ -CXX_STD=CXX11 +CXX_STD=CXX17 PKG_CPPFLAGS = -DSTRICT_R_HEADERS \ No newline at end of file diff --git a/src/udpipe.cpp b/src/udpipe.cpp index e133f10..5320ef2 100644 --- a/src/udpipe.cpp +++ b/src/udpipe.cpp @@ -667,8 +667,14 @@ void utf8::decode(const std::string& str, std::u32string& decoded) { decode(str.c_str(), decoded); } -class utf8::string_decoder::iterator : public std::iterator { +class utf8::string_decoder::iterator { public: + // Required iterator traits (replaces std::iterator) + using iterator_category = std::input_iterator_tag; + using value_type = char32_t; + using difference_type = std::ptrdiff_t; + using pointer = const char32_t*; + using reference = const char32_t&; iterator(const char* str) : codepoint(0), next(str) { operator++(); } iterator(const iterator& it) : codepoint(it.codepoint), next(it.next) {} iterator& operator++() { if (next) { codepoint = decode(next); if (!codepoint) next = nullptr; } return *this; } @@ -699,8 +705,14 @@ utf8::string_decoder utf8::decoder(const std::string& str) { return string_decoder(str.c_str()); } -class utf8::buffer_decoder::iterator : public std::iterator { +class utf8::buffer_decoder::iterator { public: + // Required iterator traits (replaces std::iterator) + using iterator_category = std::input_iterator_tag; + using value_type = char32_t; + using difference_type = std::ptrdiff_t; + using pointer = const char32_t*; + using reference = const char32_t&; iterator(const char* str, size_t len) : codepoint(0), next(str), len(len) { operator++(); } iterator(const iterator& it) : codepoint(it.codepoint), next(it.next), len(it.len) {} iterator& operator++() { if (!len) next = nullptr; if (next) codepoint = decode(next, len); return *this; } From 7b056a92a11e52e1b07e83735d90d58ae64fe878 Mon Sep 17 00:00:00 2001 From: Jan Wijffels Date: Thu, 27 Nov 2025 17:48:17 +0100 Subject: [PATCH 2/2] drop C++11 from makevars --- NEWS.md | 2 +- src/Makevars | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/NEWS.md b/NEWS.md index 87e1626..f704e99 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,6 @@ ## CHANGES IN udpipe VERSION 0.8.15 -- Use C++17 instead of C++11 +- Drop C++11 from Makevars ## CHANGES IN udpipe VERSION 0.8.14 diff --git a/src/Makevars b/src/Makevars index ae06a75..77229ae 100644 --- a/src/Makevars +++ b/src/Makevars @@ -1,2 +1 @@ -CXX_STD=CXX17 PKG_CPPFLAGS = -DSTRICT_R_HEADERS \ No newline at end of file