I'm trying to make a string set that has a flag to become the universal
set, and figured StringSet might be a good starting point
struct Selection : StringSet<> {
bool all;
Selection(const Selection &selection)
: StringSet<>(selection), all(selection.all) {}
Selection(bool all) : all(all) {}
size_t count(const string &s) const {
if (all)
return true;
return StringSet<>::count(s);
}
};
But I get an error when trying to compile
error C2280: 'llvm::StringSet<llvm::MallocAllocator>::StringSet(const
llvm::StringSet<llvm::MallocAllocator> &)': attempting to
reference a
deleted function
\llvm\include\llvm/ADT/StringSet.h(31): note: compiler has generated
'llvm::StringSet<llvm::MallocAllocator>::StringSet' here
The indicated line is on my constructor declaration - is this not the right
way to copy a StringSet?
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20150831/9e28d39f/attachment.html>
StringSets are just StringMaps in disguise StringMaps aren't copyable just because no one has had a need for that yet (see the comment "// FIXME: Implement copy operations if/when they're needed.") http://llvm.org/docs/doxygen/html/StringMap_8h_source.html If there's a need, please implement/provide a patch (along with unit tests) On Mon, Aug 31, 2015 at 8:22 AM, Russell Wallace via llvm-dev < llvm-dev at lists.llvm.org> wrote:> I'm trying to make a string set that has a flag to become the universal > set, and figured StringSet might be a good starting point > > struct Selection : StringSet<> { > bool all; > > Selection(const Selection &selection) > : StringSet<>(selection), all(selection.all) {} > > Selection(bool all) : all(all) {} > > size_t count(const string &s) const { > if (all) > return true; > return StringSet<>::count(s); > } > }; > > But I get an error when trying to compile > > error C2280: 'llvm::StringSet<llvm::MallocAllocator>::StringSet(const > llvm::StringSet<llvm::MallocAllocator> &)': attempting to reference a > deleted function > \llvm\include\llvm/ADT/StringSet.h(31): note: compiler has generated > 'llvm::StringSet<llvm::MallocAllocator>::StringSet' here > > The indicated line is on my constructor declaration - is this not the > right way to copy a StringSet? > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150831/e49aee0a/attachment.html>
Ah! Fair enough. The use case isn't high frequency so I can probably just use std::set for now. On Mon, Aug 31, 2015 at 4:30 PM, David Blaikie <dblaikie at gmail.com> wrote:> StringSets are just StringMaps in disguise > StringMaps aren't copyable just because no one has had a need for that yet > (see the comment "// FIXME: Implement copy operations if/when they're > needed.") > > http://llvm.org/docs/doxygen/html/StringMap_8h_source.html > > If there's a need, please implement/provide a patch (along with unit tests) > > On Mon, Aug 31, 2015 at 8:22 AM, Russell Wallace via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> I'm trying to make a string set that has a flag to become the universal >> set, and figured StringSet might be a good starting point >> >> struct Selection : StringSet<> { >> bool all; >> >> Selection(const Selection &selection) >> : StringSet<>(selection), all(selection.all) {} >> >> Selection(bool all) : all(all) {} >> >> size_t count(const string &s) const { >> if (all) >> return true; >> return StringSet<>::count(s); >> } >> }; >> >> But I get an error when trying to compile >> >> error C2280: 'llvm::StringSet<llvm::MallocAllocator>::StringSet(const >> llvm::StringSet<llvm::MallocAllocator> &)': attempting to reference a >> deleted function >> \llvm\include\llvm/ADT/StringSet.h(31): note: compiler has generated >> 'llvm::StringSet<llvm::MallocAllocator>::StringSet' here >> >> The indicated line is on my constructor declaration - is this not the >> right way to copy a StringSet? >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150831/59fa498e/attachment.html>