From 5cad015138021d5b480bed25bb293ac968f22286 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Sun, 4 Sep 2022 15:28:15 +0000 Subject: - Use c++11 for loops - add 'explicit' - only 'override' OR 'final', not both. - Reduce code visibility. --- .../src/apps/tests/memoryindexstress_test.cpp | 4 +-- .../memoryindex/memory_index/memory_index_test.cpp | 2 +- .../fake_searchable/fake_searchable_test.cpp | 1 + .../src/vespa/searchcommon/attribute/basictype.cpp | 2 +- .../attribute/attribute_blueprint_factory.cpp | 33 +++++++++++----------- .../attribute/attribute_blueprint_factory.h | 5 +--- .../src/vespa/searchlib/diskindex/diskindex.h | 12 ++++---- .../src/vespa/searchlib/memoryindex/memory_index.h | 26 ++++++++--------- .../src/vespa/searchlib/queryeval/blueprint.h | 28 +++++++++--------- .../queryeval/create_blueprint_visitor_helper.h | 10 +++++-- .../searchlib/queryeval/dot_product_blueprint.h | 13 ++++----- .../vespa/searchlib/queryeval/fake_searchable.h | 12 ++++---- .../searchlib/queryeval/multibitvectoriterator.cpp | 2 -- .../searchlib/queryeval/same_element_blueprint.h | 4 +-- .../src/vespa/searchlib/queryeval/searchable.h | 22 ++++++++------- .../searchlib/queryeval/simple_phrase_blueprint.h | 3 +- .../queryeval/weighted_set_term_blueprint.h | 9 +++--- 17 files changed, 92 insertions(+), 96 deletions(-) (limited to 'searchlib') diff --git a/searchlib/src/apps/tests/memoryindexstress_test.cpp b/searchlib/src/apps/tests/memoryindexstress_test.cpp index d8f8cd9d67c..526b4cad9a6 100644 --- a/searchlib/src/apps/tests/memoryindexstress_test.cpp +++ b/searchlib/src/apps/tests/memoryindexstress_test.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -328,8 +329,7 @@ Fixture::readWork(uint32_t cnt) FieldSpec field(fieldName, fieldId, handle); FieldSpecList fields; fields.add(field); - Blueprint::UP result = index.createBlueprint(requestContext, - fields, term); + Blueprint::UP result = index.createBlueprint(requestContext, fields, term); if (!EXPECT_TRUE(result.get() != 0)) { LOG(error, "Did not get blueprint"); break; diff --git a/searchlib/src/tests/memoryindex/memory_index/memory_index_test.cpp b/searchlib/src/tests/memoryindex/memory_index/memory_index_test.cpp index c806a1b02ac..b3ea948dfa7 100644 --- a/searchlib/src/tests/memoryindex/memory_index/memory_index_test.cpp +++ b/searchlib/src/tests/memoryindex/memory_index/memory_index_test.cpp @@ -10,9 +10,9 @@ #include #include #include -#include #include #include +#include #include #include #include diff --git a/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp b/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp index d8ae70d147d..e9c4bdb26a5 100644 --- a/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp +++ b/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include #include diff --git a/searchlib/src/vespa/searchcommon/attribute/basictype.cpp b/searchlib/src/vespa/searchcommon/attribute/basictype.cpp index 5bab2fc06d2..d0d90d1c9d5 100644 --- a/searchlib/src/vespa/searchcommon/attribute/basictype.cpp +++ b/searchlib/src/vespa/searchcommon/attribute/basictype.cpp @@ -1,6 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#include +#include "basictype.h" #include namespace search::attribute { diff --git a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp index 7af2186ed1e..5905995d586 100644 --- a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp +++ b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -193,7 +194,7 @@ AttributeFieldBlueprint::visitMembers(vespalib::ObjectVisitor &visitor) const template struct LocationPreFilterIterator : public OrLikeSearch { - LocationPreFilterIterator(OrSearch::Children children) + explicit LocationPreFilterIterator(OrSearch::Children children) : OrLikeSearch(std::move(children), NoUnpack()) {} void doUnpack(uint32_t) override {} }; @@ -214,8 +215,7 @@ public: { uint64_t estHits(0); const IAttributeVector &attr(_attribute); - for (auto it(rangeVector.begin()), mt(rangeVector.end()); it != mt; it++) { - const ZCurve::Range &r(*it); + for (const ZCurve::Range & r : rangeVector) { query::Range qr(r.min(), r.max()); query::SimpleRangeTerm rt(qr, "", 0, query::Weight(0)); string stack(StackDumpCreator::create(rt)); @@ -235,7 +235,7 @@ public: set_allow_termwise_eval(true); } - ~LocationPreFilterBlueprint(); + ~LocationPreFilterBlueprint() override; bool should_use() const { return _should_use; } @@ -243,8 +243,8 @@ public: createLeafSearch(const TermFieldMatchDataArray &tfmda, bool strict) const override { OrSearch::Children children; - for (auto it(_rangeSearches.begin()), mt(_rangeSearches.end()); it != mt; it++) { - children.push_back((*it)->createIterator(tfmda[0], strict)); + for (auto & search : _rangeSearches) { + children.push_back(search->createIterator(tfmda[0], strict)); } if (strict) { return std::make_unique>(std::move(children)); @@ -254,8 +254,8 @@ public: } void fetchPostings(const queryeval::ExecuteInfo &execInfo) override { - for (size_t i(0); i < _rangeSearches.size(); i++) { - _rangeSearches[i]->fetchPostings(execInfo); + for (auto & search : _rangeSearches) { + search->fetchPostings(execInfo); } } }; @@ -286,7 +286,7 @@ public: setEstimate(estimate); } - ~LocationPostFilterBlueprint(); + ~LocationPostFilterBlueprint() override; const common::Location &location() const { return _location; } @@ -410,7 +410,7 @@ public: { assert(tfmda.size() == 1); assert(getState().numFields() == 1); - if (_terms.size() == 0) { + if (_terms.empty()) { return std::make_unique(); } std::vector iterators; @@ -428,7 +428,7 @@ public: if (fields.has_field(_field_name)) { return queryeval::MatchingElementsSearch::create(_iattr, _dictionary_snapshot, vespalib::ConstArrayRef(_terms)); } else { - return std::unique_ptr(); + return {}; } } }; @@ -481,7 +481,7 @@ public: _terms.reserve(size_hint); } - ~DirectWandBlueprint(); + ~DirectWandBlueprint() override; void addTerm(const IDocumentWeightAttribute::LookupKey & key, int32_t weight) { IDocumentWeightAttribute::LookupResult result = _attr.lookup(key, _dictionary_snapshot); @@ -500,7 +500,7 @@ public: SearchIterator::UP createLeafSearch(const TermFieldMatchDataArray &tfmda, bool strict) const override { assert(tfmda.size() == 1); - if (_terms.size() == 0) { + if (_terms.empty()) { return std::make_unique(); } return queryeval::ParallelWeakAndSearch::create(*tfmda[0], @@ -585,7 +585,7 @@ public: if (fields.has_field(_attrName)) { return queryeval::MatchingElementsSearch::create(_iattr, _dictionary_snapshot, vespalib::ConstArrayRef(&_dict_entry, 1)); } else { - return std::unique_ptr(); + return {}; } } }; @@ -637,12 +637,11 @@ public: } void visitLocation(LocationTerm &node) { - Location loc(node.getTerm()); - setResult(make_location_blueprint(_field, _attr, loc)); + setResult(make_location_blueprint(_field, _attr, node.getTerm())); } void visitPredicate(PredicateQuery &query) { - const PredicateAttribute *attr = dynamic_cast(&_attr); + const auto *attr = dynamic_cast(&_attr); if (!attr) { Issue::report("Trying to apply a PredicateQuery node to a non-predicate attribute."); setResult(std::make_unique(_field)); diff --git a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.h b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.h index fe456794a04..368af80a43d 100644 --- a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.h +++ b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.h @@ -3,16 +3,13 @@ #pragma once #include -#include -#include namespace search { class AttributeBlueprintFactory : public queryeval::Searchable { public: - // implements Searchable - queryeval::Blueprint::UP + std::unique_ptr createBlueprint(const queryeval::IRequestContext & requestContext, const queryeval::FieldSpec &field, const query::Node &term) override; diff --git a/searchlib/src/vespa/searchlib/diskindex/diskindex.h b/searchlib/src/vespa/searchlib/diskindex/diskindex.h index 0869bccc307..f1a294f90ef 100644 --- a/searchlib/src/vespa/searchlib/diskindex/diskindex.h +++ b/searchlib/src/vespa/searchlib/diskindex/diskindex.h @@ -133,13 +133,13 @@ public: */ BitVector::UP readBitVector(const LookupResult &lookupRes) const; - queryeval::Blueprint::UP createBlueprint(const queryeval::IRequestContext & requestContext, - const queryeval::FieldSpec &field, - const query::Node &term) override; + std::unique_ptr createBlueprint(const queryeval::IRequestContext & requestContext, + const queryeval::FieldSpec &field, + const query::Node &term) override; - queryeval::Blueprint::UP createBlueprint(const queryeval::IRequestContext & requestContext, - const queryeval::FieldSpecList &fields, - const query::Node &term) override; + std::unique_ptr createBlueprint(const queryeval::IRequestContext & requestContext, + const queryeval::FieldSpecList &fields, + const query::Node &term) override; /** * Get the size on disk of this index. diff --git a/searchlib/src/vespa/searchlib/memoryindex/memory_index.h b/searchlib/src/vespa/searchlib/memoryindex/memory_index.h index 4296ba5bd1a..242703d4ccc 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/memory_index.h +++ b/searchlib/src/vespa/searchlib/memoryindex/memory_index.h @@ -60,11 +60,6 @@ private: vespalib::hash_set _indexedDocs; // documents in memory index const uint64_t _staticMemoryFootprint; - MemoryIndex(const MemoryIndex &) = delete; - MemoryIndex(MemoryIndex &&) = delete; - MemoryIndex &operator=(const MemoryIndex &) = delete; - MemoryIndex &operator=(MemoryIndex &&) = delete; - void updateMaxDocId(uint32_t docId) { if (docId > _maxDocId) { _maxDocId = docId; @@ -99,7 +94,11 @@ public: ISequencedTaskExecutor& invertThreads, ISequencedTaskExecutor& pushThreads); - ~MemoryIndex(); + MemoryIndex(const MemoryIndex &) = delete; + MemoryIndex(MemoryIndex &&) = delete; + MemoryIndex &operator=(const MemoryIndex &) = delete; + MemoryIndex &operator=(MemoryIndex &&) = delete; + ~MemoryIndex() override; const index::Schema &getSchema() const { return _schema; } @@ -141,13 +140,14 @@ public: void dump(index::IndexBuilder &indexBuilder); // Implements Searchable - queryeval::Blueprint::UP createBlueprint(const queryeval::IRequestContext & requestContext, - const queryeval::FieldSpec &field, - const query::Node &term) override; - - queryeval::Blueprint::UP createBlueprint(const queryeval::IRequestContext & requestContext, - const queryeval::FieldSpecList &fields, - const query::Node &term) override { + std::unique_ptr createBlueprint(const queryeval::IRequestContext & requestContext, + const queryeval::FieldSpec &field, + const query::Node &term) override; + + std::unique_ptr createBlueprint(const queryeval::IRequestContext & requestContext, + const queryeval::FieldSpecList &fields, + const query::Node &term) override + { return queryeval::Searchable::createBlueprint(requestContext, fields, term); } diff --git a/searchlib/src/vespa/searchlib/queryeval/blueprint.h b/searchlib/src/vespa/searchlib/queryeval/blueprint.h index 5dca5c9412b..b7fe627d854 100644 --- a/searchlib/src/vespa/searchlib/queryeval/blueprint.h +++ b/searchlib/src/vespa/searchlib/queryeval/blueprint.h @@ -259,12 +259,12 @@ private: void updateState() const; protected: - void notifyChange() override final; + void notifyChange() final; virtual State calculateState() const = 0; public: StateCache() : _stale(true), _state(FieldSpecBaseList()) {} - const State &getState() const override final { + const State &getState() const final { if (_stale) { updateState(); } @@ -296,7 +296,7 @@ protected: // conflicting collections of field specs. FieldSpecBaseList mixChildrenFields() const; - State calculateState() const override final; + State calculateState() const final; virtual bool isPositive(size_t index) const { (void) index; return true; } @@ -309,9 +309,9 @@ public: IntermediateBlueprint(); ~IntermediateBlueprint() override; - void setDocIdLimit(uint32_t limit) override final; + void setDocIdLimit(uint32_t limit) final; - void optimize(Blueprint* &self) override final; + void optimize(Blueprint* &self) final; void set_global_filter(const GlobalFilter &global_filter, double estimated_hit_ratio) override; IndexList find(const IPredicate & check) const; @@ -333,7 +333,7 @@ public: void visitMembers(vespalib::ObjectVisitor &visitor) const override; void fetchPostings(const ExecuteInfo &execInfo) override; - void freeze() override final; + void freeze() final; UnpackInfo calculateUnpackInfo(const fef::MatchData & md) const; bool isIntermediate() const override { return true; } @@ -346,7 +346,7 @@ private: State _state; protected: - void optimize(Blueprint* &self) override final; + void optimize(Blueprint* &self) final; void setEstimate(HitEstimate est); void set_cost_tier(uint32_t value); void set_allow_termwise_eval(bool value); @@ -356,10 +356,10 @@ protected: LeafBlueprint(const FieldSpecBaseList &fields, bool allow_termwise_eval); public: ~LeafBlueprint() override; - const State &getState() const override final { return _state; } - void setDocIdLimit(uint32_t limit) override final { Blueprint::setDocIdLimit(limit); } + const State &getState() const final { return _state; } + void setDocIdLimit(uint32_t limit) final { Blueprint::setDocIdLimit(limit); } void fetchPostings(const ExecuteInfo &execInfo) override; - void freeze() override final; + void freeze() final; SearchIteratorUP createSearch(fef::MatchData &md, bool strict) const override; virtual SearchIteratorUP createLeafSearch(const fef::TermFieldMatchDataArray &tfmda, bool strict) const = 0; @@ -367,14 +367,14 @@ public: // for leaf nodes representing a single term struct SimpleLeafBlueprint : LeafBlueprint { - SimpleLeafBlueprint(const FieldSpecBase &field) : LeafBlueprint(FieldSpecBaseList().add(field), true) {} - SimpleLeafBlueprint(const FieldSpecBaseList &fields) : LeafBlueprint(fields, true) {} + explicit SimpleLeafBlueprint(const FieldSpecBase &field) : LeafBlueprint(FieldSpecBaseList().add(field), true) {} + explicit SimpleLeafBlueprint(const FieldSpecBaseList &fields) : LeafBlueprint(fields, true) {} }; // for leaf nodes representing more complex structures like wand/phrase struct ComplexLeafBlueprint : LeafBlueprint { - ComplexLeafBlueprint(const FieldSpecBase &field) : LeafBlueprint(FieldSpecBaseList().add(field), false) {} - ComplexLeafBlueprint(const FieldSpecBaseList &fields) : LeafBlueprint(fields, false) {} + explicit ComplexLeafBlueprint(const FieldSpecBase &field) : LeafBlueprint(FieldSpecBaseList().add(field), false) {} + explicit ComplexLeafBlueprint(const FieldSpecBaseList &fields) : LeafBlueprint(fields, false) {} }; //----------------------------------------------------------------------------- diff --git a/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.h b/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.h index 30c7e1722fb..c410f8b98c4 100644 --- a/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.h +++ b/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.h @@ -2,7 +2,7 @@ #pragma once -#include "searchable.h" +#include "field_spec.h" #include "termasstring.h" #include #include @@ -12,13 +12,17 @@ namespace search::queryeval { +class IRequestContext; +class Searchable; +class Blueprint; + class CreateBlueprintVisitorHelper : public query::QueryVisitor { private: const IRequestContext & _requestContext; Searchable & _searchable; FieldSpec _field; - Blueprint::UP _result; + std::unique_ptr _result; protected: const IRequestContext & getRequestContext() const { return _requestContext; } @@ -30,7 +34,7 @@ public: template void setResult(std::unique_ptr result) { _result = std::move(result); } - Blueprint::UP getResult(); + std::unique_ptr getResult(); const FieldSpec &getField() const { return _field; } diff --git a/searchlib/src/vespa/searchlib/queryeval/dot_product_blueprint.h b/searchlib/src/vespa/searchlib/queryeval/dot_product_blueprint.h index 5955c359003..d1992fc67c5 100644 --- a/searchlib/src/vespa/searchlib/queryeval/dot_product_blueprint.h +++ b/searchlib/src/vespa/searchlib/queryeval/dot_product_blueprint.h @@ -2,7 +2,7 @@ #pragma once -#include "searchable.h" +#include "blueprint.h" #include namespace search::fef { class TermFieldMatchData; } @@ -16,11 +16,10 @@ class DotProductBlueprint : public ComplexLeafBlueprint std::vector _weights; std::vector _terms; - DotProductBlueprint(const DotProductBlueprint &); // disabled - DotProductBlueprint &operator=(const DotProductBlueprint &); // disabled - public: - DotProductBlueprint(const FieldSpec &field); + explicit DotProductBlueprint(const FieldSpec &field); + DotProductBlueprint(const DotProductBlueprint &) = delete; + DotProductBlueprint &operator=(const DotProductBlueprint &) = delete; ~DotProductBlueprint() override; // used by create visitor @@ -29,9 +28,7 @@ public: // used by create visitor void addTerm(Blueprint::UP term, int32_t weight); - SearchIteratorUP - createLeafSearch(const search::fef::TermFieldMatchDataArray &tfmda, - bool strict) const override; + SearchIteratorUP createLeafSearch(const search::fef::TermFieldMatchDataArray &tfmda, bool strict) const override; SearchIteratorUP createFilterSearch(bool strict, FilterConstraint constraint) const override; void visitMembers(vespalib::ObjectVisitor &visitor) const override; diff --git a/searchlib/src/vespa/searchlib/queryeval/fake_searchable.h b/searchlib/src/vespa/searchlib/queryeval/fake_searchable.h index 5dd678e547d..a76e23ad87e 100644 --- a/searchlib/src/vespa/searchlib/queryeval/fake_searchable.h +++ b/searchlib/src/vespa/searchlib/queryeval/fake_searchable.h @@ -4,8 +4,7 @@ #include "searchable.h" #include "fake_result.h" - -#include +#include #include namespace search::queryeval { @@ -65,10 +64,11 @@ public: const FakeResult &result); using Searchable::createBlueprint; - Blueprint::UP createBlueprint(const IRequestContext & requestContext, - const FieldSpec &field, - const search::query::Node &term) override; - ~FakeSearchable(); + std::unique_ptr + createBlueprint(const IRequestContext & requestContext, + const FieldSpec &field, + const search::query::Node &term) override; + ~FakeSearchable() override; }; } diff --git a/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.cpp b/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.cpp index f7fc99af573..d69b3486537 100644 --- a/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.cpp +++ b/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.cpp @@ -5,8 +5,6 @@ #include "andnotsearch.h" #include "sourceblendersearch.h" #include -#include -#include #include namespace search::queryeval { diff --git a/searchlib/src/vespa/searchlib/queryeval/same_element_blueprint.h b/searchlib/src/vespa/searchlib/queryeval/same_element_blueprint.h index 5eb8e3ff21c..2d3cb5cca99 100644 --- a/searchlib/src/vespa/searchlib/queryeval/same_element_blueprint.h +++ b/searchlib/src/vespa/searchlib/queryeval/same_element_blueprint.h @@ -2,7 +2,7 @@ #pragma once -#include "searchable.h" +#include "blueprint.h" #include namespace search::fef { class TermFieldMatchData; } @@ -23,7 +23,7 @@ public: SameElementBlueprint(const vespalib::string &field_name_in, bool expensive); SameElementBlueprint(const SameElementBlueprint &) = delete; SameElementBlueprint &operator=(const SameElementBlueprint &) = delete; - ~SameElementBlueprint(); + ~SameElementBlueprint() override; // no match data bool isWhiteList() const override { return true; } diff --git a/searchlib/src/vespa/searchlib/queryeval/searchable.h b/searchlib/src/vespa/searchlib/queryeval/searchable.h index 2467cfe4142..a8bdde69b8e 100644 --- a/searchlib/src/vespa/searchlib/queryeval/searchable.h +++ b/searchlib/src/vespa/searchlib/queryeval/searchable.h @@ -2,15 +2,17 @@ #pragma once -#include "field_spec.h" -#include "blueprint.h" -#include -#include +#include namespace search::query { class Node; } namespace search::queryeval { +class Blueprint; +class IRequestContext; +class FieldSpec; +class FieldSpecList; + /** * Abstract class extended by components to expose content that can be * searched by a query term. A Searchable component supports searching @@ -29,9 +31,9 @@ protected: * @param field the field to search * @param term the query tree term **/ - virtual Blueprint::UP createBlueprint(const IRequestContext & requestContext, - const FieldSpec &field, - const search::query::Node &term) = 0; + virtual std::unique_ptr createBlueprint(const IRequestContext & requestContext, + const FieldSpec &field, + const search::query::Node &term) = 0; public: typedef std::shared_ptr SP; @@ -48,9 +50,9 @@ public: * @param fields the set of fields to search * @param term the query tree term **/ - virtual Blueprint::UP createBlueprint(const IRequestContext & requestContext, - const FieldSpecList &fields, - const search::query::Node &term); + virtual std::unique_ptr createBlueprint(const IRequestContext & requestContext, + const FieldSpecList &fields, + const search::query::Node &term); virtual ~Searchable() = default; }; diff --git a/searchlib/src/vespa/searchlib/queryeval/simple_phrase_blueprint.h b/searchlib/src/vespa/searchlib/queryeval/simple_phrase_blueprint.h index 5ae7673269f..0cfb2357321 100644 --- a/searchlib/src/vespa/searchlib/queryeval/simple_phrase_blueprint.h +++ b/searchlib/src/vespa/searchlib/queryeval/simple_phrase_blueprint.h @@ -2,8 +2,7 @@ #pragma once -#include "searchable.h" -#include "irequestcontext.h" +#include "blueprint.h" #include namespace search::fef { class TermFieldMatchData; } diff --git a/searchlib/src/vespa/searchlib/queryeval/weighted_set_term_blueprint.h b/searchlib/src/vespa/searchlib/queryeval/weighted_set_term_blueprint.h index b726f55d254..a840310d3d9 100644 --- a/searchlib/src/vespa/searchlib/queryeval/weighted_set_term_blueprint.h +++ b/searchlib/src/vespa/searchlib/queryeval/weighted_set_term_blueprint.h @@ -2,7 +2,7 @@ #pragma once -#include "searchable.h" +#include "blueprint.h" #include #include @@ -18,12 +18,11 @@ class WeightedSetTermBlueprint : public ComplexLeafBlueprint std::vector _weights; std::vector _terms; - WeightedSetTermBlueprint(const WeightedSetTermBlueprint &); // disabled - WeightedSetTermBlueprint &operator=(const WeightedSetTermBlueprint &); // disabled - public: WeightedSetTermBlueprint(const FieldSpec &field); - ~WeightedSetTermBlueprint(); + WeightedSetTermBlueprint(const WeightedSetTermBlueprint &) = delete; + WeightedSetTermBlueprint &operator=(const WeightedSetTermBlueprint &) = delete; + ~WeightedSetTermBlueprint() override; // used by create visitor // matches signature in dot product blueprint for common blueprint -- cgit v1.2.3