diff --git a/.clang-tidy b/.clang-tidy index 574cacad977f08c40aaa7bdc8599239937296ed9..f2284e6bfb201d20944fa10d976471ad1e634821 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -26,7 +26,6 @@ bugprone-*,\ -bugprone-suspicious-include,\ -bugprone-string-integer-assignment,\ -bugprone-switch-missing-default-case,\ --bugprone-unhandled-exception-at-new,\ -bugprone-unhandled-self-assignment,\ -bugprone-unused-local-non-trivial-variable,\ -cert-*,\ @@ -72,7 +71,9 @@ modernize-*,\ -modernize-return-braced-init-list,\ -modernize-type-traits,\ -modernize-use-auto,\ +-modernize-use-nodiscard,\ -modernize-use-trailing-return-type,\ +-modernize-use-transparent-functors,\ -modernize-use-using,\ mpi-*,\ openmp-*,\ @@ -107,7 +108,6 @@ readability-*,\ -readability-qualified-auto,\ -readability-redundant-access-specifiers,\ -readability-redundant-control-flow,\ --readability-redundant-declaration,\ -readability-simplify-boolean-expr,\ -readability-suspicious-call-argument,\ -readability-uppercase-literal-suffix,\ diff --git a/.gitlab/ci/download_superbuild.cmake b/.gitlab/ci/download_superbuild.cmake index ee5e245c2b0a1d83d05c3c61f9e6e24b87ea25bf..801387737fb52c097a2d0549a9ce65c08c3194e5 100644 --- a/.gitlab/ci/download_superbuild.cmake +++ b/.gitlab/ci/download_superbuild.cmake @@ -7,17 +7,17 @@ cmake_minimum_required(VERSION 3.12) set(data_host "https://data.kitware.com") -# Determine the tarball to download. ci-smtk-ci-developer-{date}-{git-sha}.tar.gz -# 20250105 - Update to use Xcode 16.1 +# Determine the tarball to download. ci-smtk-ci-developer-{date}-{git-sha}-{platform}.tar.gz +# 20250305 - Update to MOAB with C++17 compat if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "vs2022") - set(file_id "1fv29BZW5MedtbwV_-XuvGFNYHNFLdVxm") - set(file_hash "7d0919c3217e143c4be6f4e7c4e47e5b9831858efc0a406f7531d09d091243fb5be44bc7ed7e26a4c61d81a5e57f38a453c253dcc8037d3ffe0fb7c9b09ba77f") + set(file_id "1yh4aAKx-V3vul07YlBHcjw5o3TPq4KUk") + set(file_hash "070f1c176c7db85eed3c22d9d1dd53c1dacd1de2156120f51c17806bf59f705d60aaa1bf6bf3087019d0421b4ca1b71345f41f05ec26cbd5733d3671bd81c2e3") elseif ("$ENV{CMAKE_CONFIGURATION}" MATCHES "macos_x86_64") - set(file_id "1q_yl0ZXBzXZu27CqH0RJIggUO0dcdzxz") - set(file_hash "a8cd9a32216b5c1153b1a37ff672941302004a64e066192288727c4b6be5c2fd6c57a818b9254c0d7aed5e8ed26bdd357d54224ce503468ed34b8352315f6138") + set(file_id "1uYwTX1C6pbBja_smvkGJNCOBWM-WvgFz") + set(file_hash "4b6305631f02daf3443703d27e038b385611f0f7f89b319d2093807297a90780e232f34b1fac895ed22dc4de56a9e837e6befabb2a38c64a90321303d10b9c1f") elseif ("$ENV{CMAKE_CONFIGURATION}" MATCHES "macos_arm64") - set(file_id "1BluXPsmfRNqAqSpYahyvC6iWAVlJ0vzy") - set(file_hash "8e8a2f8492cc383658028184a25cd555f85697e2a0075c0792321de7980eda58e7b60c0ef5be743f253d44f5abaebf89852a606a90078214bb9eed885428ce73") + set(file_id "1-TmoPhfF71TeXaI62vZ9aOHvKmeRN2t7") + set(file_hash "dc08efb27412284c413e00c45e20cf037d906ca76a6e35021d9ba3fb26679cbdea46b8273bfbe6a448b524f78f19d70a5a5a99a8636714e7ad56f5313158a7c4") else () message(FATAL_ERROR "Unknown build to use for the superbuild") diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml index f990fd6e3086ec58d6e9d717493ee489cca00c2a..a1b6a3572ece7b6ee70fc1d90f2c7d7a0c6a2b07 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml @@ -6,8 +6,8 @@ ### Fedora .fedora41: - # Update to Fedora 41 - image: "kitware/cmb:ci-smtk-fedora41-20250226" + # Update to MOAB with C++17 compat + image: "kitware/cmb:ci-smtk-fedora41-20250305" variables: GIT_SUBMODULE_STRATEGY: recursive @@ -67,14 +67,14 @@ .fedora41_vtk_python3: extends: .fedora41 - image: "kitware/cmb:ci-smtk-fedora41-vtk-20250226" + image: "kitware/cmb:ci-smtk-fedora41-vtk-20250305" variables: CMAKE_CONFIGURATION: fedora41_vtk_python3 .fedora41_paraview: extends: .fedora41 - image: "kitware/cmb:ci-smtk-fedora41-paraview-20250226" + image: "kitware/cmb:ci-smtk-fedora41-paraview-20250305" variables: CMAKE_CONFIGURATION: fedora41_paraview diff --git a/CMakeLists.txt b/CMakeLists.txt index 690be8b37fb148ba2ef6c38fb3e321e9299ce342..ae0988f4b3056b9aa70d440ce21a21a3ce82b2fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,10 @@ cmake_minimum_required(VERSION 3.20) #If the user/superbuild hasn't explicitly stated what c++ standard to use #require C++17 -if(NOT DEFINED CMAKE_CXX_STANDARD) +set(old_cxx_standards + 98 93 11 14) +if(NOT DEFINED CMAKE_CXX_STANDARD OR + CMAKE_CXX_STANDARD IN_LIST old_cxx_standards) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_EXTENSIONS FALSE) diff --git a/applications/TemplateEditor/PreviewPanel.cxx b/applications/TemplateEditor/PreviewPanel.cxx index 7c0169527e5ad6bf48522be14a1132f0b3eca0d3..2828f60a7f6c50a40988d120a616ebb10fc513a7 100644 --- a/applications/TemplateEditor/PreviewPanel.cxx +++ b/applications/TemplateEditor/PreviewPanel.cxx @@ -147,7 +147,7 @@ void PreviewPanel::createViewWidget(const smtk::view::ConfigurationPtr& view) // Destroying qtUIManager will cleanup after the older PreviewWidget as it is // parented by one of its internal widgets (m_ScrollArea). - this->UIManager.reset(new smtk::extension::qtUIManager(this->AttributeResource)); + this->UIManager = std::make_unique(this->AttributeResource); this->PreviewWidget = new QWidget(this); this->PreviewWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); diff --git a/doc/tutorials/create_a_project/CMakeLists.txt b/doc/tutorials/create_a_project/CMakeLists.txt index 6911c0fc3a73bd908146f00b801c9cb784d9992b..62620f6915a310269d6c86a40ad849d53cfb3f1e 100644 --- a/doc/tutorials/create_a_project/CMakeLists.txt +++ b/doc/tutorials/create_a_project/CMakeLists.txt @@ -1,7 +1,7 @@ project(create_a_project) cmake_minimum_required(VERSION 3.12) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_EXTENSIONS False) diff --git a/doc/tutorials/implement_an_operator/CMakeLists.txt b/doc/tutorials/implement_an_operator/CMakeLists.txt index ab548dd5db5671e1b2e275c2c510170bcb047c07..99f745ab0c0d8e1261822a953fe5814e83e9486b 100644 --- a/doc/tutorials/implement_an_operator/CMakeLists.txt +++ b/doc/tutorials/implement_an_operator/CMakeLists.txt @@ -1,7 +1,7 @@ project(ex_implement_an_operator) cmake_minimum_required(VERSION 3.12) -set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_EXTENSIONS False) diff --git a/smtk/CMakeLists.txt b/smtk/CMakeLists.txt index d18dc902f302693af1ab97faa1c8186a28ce43c7..f881020364407b457eae258c7ad3449c36491615 100644 --- a/smtk/CMakeLists.txt +++ b/smtk/CMakeLists.txt @@ -126,6 +126,9 @@ if(SMTK_ENABLE_PYTHON_WRAPPING) endif() add_library(smtkCore ${smtk_srcs}) +target_compile_features(smtkCore + PUBLIC + cxx_std_17) # dependencies on generated files from subdirectories add_dependencies(smtkCore attributeGenHeaders diff --git a/smtk/attribute/DoubleItemDefinition.cxx b/smtk/attribute/DoubleItemDefinition.cxx index c697e9066396ad665dc5fb4929a001974d70ae0b..6dbb2bacc6ffb0a083036b4eaf082cf2c77558c1 100644 --- a/smtk/attribute/DoubleItemDefinition.cxx +++ b/smtk/attribute/DoubleItemDefinition.cxx @@ -59,7 +59,7 @@ bool DoubleItemDefinition::setDefaultValue(const std::vector& vals) return this->setDefaultValue(vals, m_units); } -const std::string DoubleItemDefinition::defaultValueAsString(std::size_t element) const +std::string DoubleItemDefinition::defaultValueAsString(std::size_t element) const { bool vectorDefault = m_defaultValuesAsStrings.size() == this->numberOfRequiredValues(); assert(!vectorDefault || m_defaultValuesAsStrings.size() > element); @@ -67,7 +67,7 @@ const std::string DoubleItemDefinition::defaultValueAsString(std::size_t element : m_defaultValuesAsStrings[vectorDefault ? element : 0]; } -const std::vector DoubleItemDefinition::defaultValuesAsStrings() const +const std::vector& DoubleItemDefinition::defaultValuesAsStrings() const { return m_defaultValuesAsStrings; } diff --git a/smtk/attribute/DoubleItemDefinition.h b/smtk/attribute/DoubleItemDefinition.h index ee95a605a584ab3160afb9a1451db79a2e019f51..eb35a30e4b3a0807ef3aa579d362a32234a3a31f 100644 --- a/smtk/attribute/DoubleItemDefinition.h +++ b/smtk/attribute/DoubleItemDefinition.h @@ -48,8 +48,8 @@ public: bool setDefaultValueAsString(const std::vector& vals); ///}@ - const std::string defaultValueAsString(std::size_t element = 0) const; - const std::vector defaultValuesAsStrings() const; + std::string defaultValueAsString(std::size_t element = 0) const; + const std::vector& defaultValuesAsStrings() const; smtk::attribute::ItemPtr buildItem(Attribute* owningAttribute, int itemPosition) const override; smtk::attribute::ItemPtr buildItem(Item* owningItem, int position, int subGroupPosition) diff --git a/smtk/attribute/ReferenceItem.cxx b/smtk/attribute/ReferenceItem.cxx index 9273c6988389d34b15bdaa3dcf03f65816d6e547..3d8cdce93246f7df1f1ec45b6072485e3d1fd420 100644 --- a/smtk/attribute/ReferenceItem.cxx +++ b/smtk/attribute/ReferenceItem.cxx @@ -21,6 +21,7 @@ #include #include +#include #include namespace smtk @@ -89,7 +90,8 @@ ReferenceItem::const_iterator::~const_iterator() = default; ReferenceItem::const_iterator& ReferenceItem::const_iterator::operator=( const ReferenceItem::const_iterator& it) { - m_cacheIterator.reset(new ReferenceItem::const_iterator::CacheIterator(*(it.m_cacheIterator))); + m_cacheIterator = + std::make_unique(*(it.m_cacheIterator)); return *this; } @@ -239,7 +241,7 @@ ReferenceItem& ReferenceItem::operator=(const ReferenceItem& referenceItem) { Item::operator=(referenceItem); m_referencedAttribute = referenceItem.m_referencedAttribute; - m_cache.reset(new ReferenceItem::Cache(*(referenceItem.m_cache))); + m_cache = std::make_unique(*(referenceItem.m_cache)); m_nextUnsetPos = referenceItem.m_nextUnsetPos; return *this; } diff --git a/smtk/attribute/Resource.cxx b/smtk/attribute/Resource.cxx index f217995338b148217e727d3108887b3479bb3a7e..afab3d5e37ecb0525265c5fe400b621a8f1deb75 100644 --- a/smtk/attribute/Resource.cxx +++ b/smtk/attribute/Resource.cxx @@ -45,9 +45,6 @@ using namespace smtk::attribute; -constexpr smtk::resource::Links::RoleType Resource::AssociationRole; -constexpr smtk::resource::Links::RoleType Resource::ReferenceRole; - namespace { using QueryList = std::tuple; diff --git a/smtk/common/RuntimeTypeContainer.h b/smtk/common/RuntimeTypeContainer.h index 1ba1f0486ac75170c4853961a92c2eea7d62dfba..4d57f1aa6ab23e5eaadb8f5fc105479ac13749a6 100644 --- a/smtk/common/RuntimeTypeContainer.h +++ b/smtk/common/RuntimeTypeContainer.h @@ -13,6 +13,8 @@ #include "smtk/common/TypeContainer.h" +#include + namespace smtk { namespace common @@ -153,13 +155,7 @@ public: m_container .emplace( declaredType.id(), -#ifdef SMTK_HAVE_CXX_14 - std::make_unique>(std::make_unique(value)) -#else - std::unique_ptr( - new WrapperFor(std::unique_ptr(new ActualType((value))))) -#endif - ) + std::make_unique>(std::make_unique(value))) .second; if (didInsert) { @@ -187,15 +183,8 @@ public: bool didInsert = m_container .emplace( declaredType.id(), -#ifdef SMTK_HAVE_CXX_14 std::make_unique>( - std::make_unique(std::forward(args)...)) -#else - std::unique_ptr( - new WrapperFor(std::unique_ptr( - new RuntimeType(std::forward(args)...)))) -#endif - ) + std::make_unique(std::forward(args)...))) .second; if (didInsert) { @@ -231,13 +220,7 @@ public: search = m_container .emplace( declaredType.id(), -#ifdef SMTK_HAVE_CXX_14 - std::make_unique>(std::make_unique()) -#else - std::unique_ptr( - new WrapperFor(std::unique_ptr(new RuntimeType))) -#endif - ) + std::make_unique>(std::make_unique())) .first; } // TODO: Check that \a RuntimeType was the type used to insert \a declaredType. diff --git a/smtk/common/TypeContainer.h b/smtk/common/TypeContainer.h index 15ff8bc835bfb1b346a00f04c580e0d75d3d84ee..cf867799249ec3010be20e4e82eee52753fa1702 100644 --- a/smtk/common/TypeContainer.h +++ b/smtk/common/TypeContainer.h @@ -61,11 +61,7 @@ protected: std::unique_ptr clone() const override { -#ifdef SMTK_HAVE_CXX_14 return std::make_unique>(std::make_unique(*value)); -#else - return std::unique_ptr(new WrapperFor(new Type(*value))); -#endif } smtk::string::Token objectType() const override { return m_objectType; } @@ -139,13 +135,7 @@ public: { return m_container .emplace(std::make_pair( - this->keyId(), -#ifdef SMTK_HAVE_CXX_14 - std::make_unique>(std::make_unique(value)) -#else - std::unique_ptr(new WrapperFor(std::unique_ptr(new Type((value))))) -#endif - )) + this->keyId(), std::make_unique>(std::make_unique(value)))) .second; } @@ -175,13 +165,7 @@ public: return m_container .emplace(std::make_pair( this->keyId(), -#ifdef SMTK_HAVE_CXX_14 - std::make_unique>(std::make_unique(std::forward(args)...)) -#else - std::unique_ptr( - new WrapperFor(std::unique_ptr(new Type(std::forward(args)...)))) -#endif - )) + std::make_unique>(std::make_unique(std::forward(args)...)))) .second; } @@ -206,16 +190,11 @@ public: auto search = m_container.find(this->keyId()); if (search == m_container.end()) { - search = m_container - .emplace(std::make_pair( - this->keyId(), -#ifdef SMTK_HAVE_CXX_14 - std::make_unique>(std::make_unique()) -#else - std::unique_ptr(new WrapperFor(std::unique_ptr(new Type))) -#endif - )) - .first; + search = + m_container + .emplace(std::make_pair( + this->keyId(), std::make_unique>(std::make_unique()))) + .first; } return *(static_cast*>(search->second.get()))->value; diff --git a/smtk/common/json/Helper.cxx b/smtk/common/json/Helper.cxx index bbb01253aa1214ebd308051896339f1f8705f59c..5522169a9dc8d8c22943de15baba3b59e277992d 100644 --- a/smtk/common/json/Helper.cxx +++ b/smtk/common/json/Helper.cxx @@ -9,6 +9,8 @@ //========================================================================= #include "smtk/common/json/Helper.h" +#include + namespace smtk { namespace common @@ -35,7 +37,7 @@ Helper* Helper::activate() { throw std::logic_error("Nested link helpers are disallowed. Perhaps you forgot to deactivate?"); } - s_instance = std::unique_ptr(new IDHelper); + s_instance = std::make_unique(); return s_instance.get(); } diff --git a/smtk/extension/qt/qtFileItem.cxx b/smtk/extension/qt/qtFileItem.cxx index eb8172f497f6c3ed19565bd0448957e89e64f3fb..dbceb43539df724a7919aa4d1167941651285ca6 100644 --- a/smtk/extension/qt/qtFileItem.cxx +++ b/smtk/extension/qt/qtFileItem.cxx @@ -267,7 +267,7 @@ QWidget* qtFileItem::createFileBrowseWidget( } } fileExtCombo->setMinimumContentsLength(8); - fileExtCombo->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength); + fileExtCombo->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLengthWithIcon); } } } @@ -300,10 +300,7 @@ QWidget* qtFileItem::createFileBrowseWidget( fileCombo->lineEdit()->setAlignment(Qt::AlignRight); fileCombo->setMinimumContentsLength(10); - // http://doc.qt.io/qt-5/qcombobox.html#sizeAdjustPolicy-prop - // Recommends using QComboBox::AdjustToContents, but that does not seem to - // work on Linux. - fileCombo->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength); + fileCombo->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLengthWithIcon); } else { diff --git a/smtk/mesh/core/Resource.cxx b/smtk/mesh/core/Resource.cxx index e82314f765f6de23b0a79510d08f18cefebd8d14..3ab3fbefd68a6e69f1a25e2902daf76f8db00a8c 100644 --- a/smtk/mesh/core/Resource.cxx +++ b/smtk/mesh/core/Resource.cxx @@ -24,8 +24,6 @@ namespace smtk namespace mesh { -constexpr smtk::resource::Links::RoleType Resource::ClassificationRole; - class Resource::InternalImpl { public: diff --git a/smtk/mesh/moab/ClosestPoint.cxx b/smtk/mesh/moab/ClosestPoint.cxx index c85d99bc490bca772e1725605e49747e9fef2af3..f7a2fedb673932233ac00dc92488b409a934d401 100644 --- a/smtk/mesh/moab/ClosestPoint.cxx +++ b/smtk/mesh/moab/ClosestPoint.cxx @@ -17,6 +17,8 @@ #include "smtk/mesh/moab/Interface.h" #include "smtk/mesh/moab/PointLocatorCache.h" +#include + namespace smtk { namespace mesh @@ -72,8 +74,8 @@ std::array ClosestPoint::operator()( pointLocatorCache.m_caches .emplace( meshset.id(), - std::unique_ptr(new PointLocatorCache::CacheForIndex( - interface->moabInterface(), smtkToMOABRange(meshset.cells().range()), &treeOptions))) + std::make_unique( + interface->moabInterface(), smtkToMOABRange(meshset.cells().range()), &treeOptions)) .first; } diff --git a/smtk/mesh/moab/DistanceTo.cxx b/smtk/mesh/moab/DistanceTo.cxx index 8545c3896e78ea34bae7e724396a4eebf3939bc8..c202b42043c203249f9261633abb09eaf761eef8 100644 --- a/smtk/mesh/moab/DistanceTo.cxx +++ b/smtk/mesh/moab/DistanceTo.cxx @@ -17,6 +17,8 @@ #include "smtk/mesh/moab/Interface.h" #include "smtk/mesh/moab/PointLocatorCache.h" +#include + namespace smtk { namespace mesh @@ -72,8 +74,8 @@ std::pair> DistanceTo::operator()( pointLocatorCache.m_caches .emplace( meshset.id(), - std::unique_ptr(new PointLocatorCache::CacheForIndex( - interface->moabInterface(), smtkToMOABRange(meshset.cells().range()), &treeOptions))) + std::make_unique( + interface->moabInterface(), smtkToMOABRange(meshset.cells().range()), &treeOptions)) .first; } diff --git a/smtk/mesh/moab/RandomPoint.cxx b/smtk/mesh/moab/RandomPoint.cxx index 28c29dbee3ef2230af2af17e651b22553334a218..90d44bbaa48e588519a566ccd9d57061e3154a72 100644 --- a/smtk/mesh/moab/RandomPoint.cxx +++ b/smtk/mesh/moab/RandomPoint.cxx @@ -24,6 +24,7 @@ SMTK_THIRDPARTY_PRE_INCLUDE SMTK_THIRDPARTY_POST_INCLUDE #include +#include #include #ifndef M_PI @@ -110,8 +111,8 @@ std::array RandomPoint::operator()(const smtk::mesh::MeshSet& meshset pointLocatorCache.m_caches .emplace( meshset.id(), - std::unique_ptr(new PointLocatorCache::CacheForIndex( - interface->moabInterface(), smtkToMOABRange(meshset.cells().range()), &treeOptions))) + std::make_unique( + interface->moabInterface(), smtkToMOABRange(meshset.cells().range()), &treeOptions)) .first; } diff --git a/smtk/model/Resource.cxx b/smtk/model/Resource.cxx index a7b07861ef4b979e5d40edd28277f12a8b364a5f..85cb8fdbce1958b4983ea6a52bae969a0d086a0a 100644 --- a/smtk/model/Resource.cxx +++ b/smtk/model/Resource.cxx @@ -66,9 +66,6 @@ namespace smtk namespace model { -constexpr smtk::resource::Links::RoleType Resource::AssociationRole; -constexpr smtk::resource::Links::RoleType Resource::TessellationRole; - namespace { using QueryList = std::tuple; diff --git a/smtk/resource/Resource.cxx b/smtk/resource/Resource.cxx index a6f9935a4ba31fdc77c30feea12fb07e81fdb5d1..de90b2788ab405d51498c8f875620ba2e961af88 100644 --- a/smtk/resource/Resource.cxx +++ b/smtk/resource/Resource.cxx @@ -33,7 +33,6 @@ namespace smtk namespace resource { -constexpr smtk::resource::Links::RoleType Resource::VisuallyLinkedRole; constexpr const char* const Resource::type_name; const Resource::Index Resource::type_index = std::type_index(typeid(Resource)).hash_code(); diff --git a/smtk/resource/query/Container.h b/smtk/resource/query/Container.h index a24d26c1aa9cf7c3c5a8991a512dbfdcdf766945..52e3adc8b8a9f4118287b595d667ad653ba574e8 100644 --- a/smtk/resource/query/Container.h +++ b/smtk/resource/query/Container.h @@ -15,6 +15,7 @@ #include "smtk/resource/query/BadTypeError.h" +#include #include #include @@ -61,7 +62,7 @@ public: if (search == m_container.end()) { search = - m_container.emplace(std::make_pair(typeid(Type).hash_code(), std::unique_ptr(new Type))) + m_container.emplace(std::make_pair(typeid(Type).hash_code(), std::make_unique())) .first; } diff --git a/smtk/string/Manager.cxx b/smtk/string/Manager.cxx index 81b77ac7b5a5d1ab3912376a8c84e4ad1c1d4f0d..58dccc10798643e1d172f76c9a104a3f8c59d237 100644 --- a/smtk/string/Manager.cxx +++ b/smtk/string/Manager.cxx @@ -19,8 +19,6 @@ namespace smtk namespace string { -constexpr Hash Manager::Invalid; - std::shared_ptr Manager::create() { auto manager = std::make_shared();