40 using Base::operator=;
42 const std::string& Reference(
const std::string& name )
const override{
43 auto iter = m_References.find( name );
44 if( iter == m_References.end() )
50 void Reference(
const std::string& name,
const std::string& reference )
override{
51 if( reference.empty() )
52 m_References.erase( name );
54 m_References[name] = reference;
57 const std::vector<char const *>& ReferenceNames(
const std::string& namePart )
const override{
58 sm_ReferenceNames.clear();
59 for(
const auto& pair : m_References )
60 if( pair.first.find( namePart ) != std::string::npos )
61 sm_ReferenceNames.push_back( pair.first.c_str() );
62 return sm_ReferenceNames;
65 IDType ID()
const noexcept override{
69 void ID(
IDType id )
noexcept override{
73 std::unordered_map<std::string, std::string> m_References;
74 static const std::string m_Empty;
77 static std::vector<char const *> sm_ReferenceNames;