switch to Ninja+ccache, add clang/lld fast build profile
- CMakePresets.json: add 'fast' preset (clang+lld+ccache) - .gitignore: generalize build/ to build*/, add CMakeUserPresets.json - CMakeUserPresets.json: untrack (conan-generated, now gitignored) - src/Core/Archives.h: remove redundant 'using basic_xml_iarchive::load_override' in xml_iarchive; caused ambiguous overload with clang (diamond inheritance) - src/Core/Object.cpp: remove invalid explicit instantiations of non-template virtual Object::serialize (GCC extension, clang rejects) - README.md, CLAUDE.md: document GCC and LLVM/clang build workflows Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -347,8 +347,6 @@ public:
|
||||
xml_iarchive(std::istream &is, unsigned int flags = 0)
|
||||
: xml_iarchive_impl<xml_iarchive>(is, flags) {}
|
||||
|
||||
using basic_xml_iarchive::load_override;
|
||||
|
||||
// Anything not an attribute should be a name value pair as nvp or hrp
|
||||
typedef boost::archive::detail::common_iarchive<Archive>
|
||||
detail_common_iarchive;
|
||||
@@ -366,6 +364,9 @@ public:
|
||||
// class_name_type can't be handled here as it depends upon the
|
||||
// char type used by the stream. So require the derived implementation.
|
||||
// derived in this case is xml_iarchive_impl or base ..
|
||||
// Note: using base::load_override covers all basic_xml_iarchive overloads
|
||||
// transitively, so a separate 'using basic_xml_iarchive::load_override'
|
||||
// is redundant and creates ambiguity with clang.
|
||||
using base::load_override;
|
||||
|
||||
void load_override(const char *str) {
|
||||
|
||||
@@ -114,14 +114,6 @@ void Object::Updated() { ULIB_SIGNAL_EMIT(Object::Updated); }
|
||||
template <class ArchiveT>
|
||||
void Object::save_override(ArchiveT &ar, const unsigned int version) {}
|
||||
|
||||
// Explicitly instantiate for all uLib archives
|
||||
template void Object::serialize(Archive::xml_oarchive &, const unsigned int);
|
||||
template void Object::serialize(Archive::xml_iarchive &, const unsigned int);
|
||||
template void Object::serialize(Archive::text_oarchive &, const unsigned int);
|
||||
template void Object::serialize(Archive::text_iarchive &, const unsigned int);
|
||||
template void Object::serialize(Archive::hrt_oarchive &, const unsigned int);
|
||||
template void Object::serialize(Archive::hrt_iarchive &, const unsigned int);
|
||||
template void Object::serialize(Archive::log_archive &, const unsigned int);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user