From: Jan Engelhardt Date: 2024-11-02 23:48:50.447834368 +0100 g++-14 does more checks even on _unexpanded_ templates; hence this new error that did not show up in g++-12. Building encode.cc under g++-14 yielded: ``` ./../include/fst/fst.h:690:59: error: no match for 'operator=' (operand types are 'std::unique_ptr >' and 'fst::SymbolTable*') 690 | isymbols_ = impl.isymbols_ ? impl.isymbols_->Copy() : nullptr; ``` --- src/include/fst/fst.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Index: openfst-1.8.3/src/include/fst/fst.h =================================================================== --- openfst-1.8.3.orig/src/include/fst/fst.h +++ openfst-1.8.3/src/include/fst/fst.h @@ -687,8 +687,8 @@ class FstImpl { properties_.store(impl.properties_.load(std::memory_order_relaxed), std::memory_order_relaxed); type_ = impl.type_; - isymbols_ = impl.isymbols_ ? impl.isymbols_->Copy() : nullptr; - osymbols_ = impl.osymbols_ ? impl.osymbols_->Copy() : nullptr; + isymbols_.reset(impl.isymbols_ ? impl.isymbols_->Copy() : nullptr); + osymbols_.reset(impl.osymbols_ ? impl.osymbols_->Copy() : nullptr); return *this; }