36 template <
class N,
class I,
class K = I>
45 using iterator =
typename registry_type::iterator;
73 std::map<name_type, prep_type>
reg_;
77 template <
class N,
class I,
class K>
80 auto result = reg_.emplace(n, tmp);
84 <<
" Store has been locked. Illegal attempt to add " << n <<
" to a global store.";
88 return result.first->second;
91 template <
class N,
class I,
class K>
95 <<
" Store has been locked. Illegal attempt to add " << n <<
" to a global store.";
98 auto result = reg_.emplace(n, tmp);
100 result.first->second->second.swap(p);
104 return result.first->second;
107 template <
typename I>
112 template <
typename I>
120 template <
class N,
class I,
class K>
122 for (
auto it : reg_) {
129 template <
class N,
class I,
class K>
133 <<
" Store is locked and most likely empty. isDefined will be false.";
134 auto it = reg_.find(n);
136 if (it != reg_.end()) {
137 if (it.second->second) {
144 template <
class N,
class I,
class K>
146 reg_.swap(storeToSwap.
reg_);
std::map< name_type, prep_type > registry_type
std::map< name_type, prep_type > reg_
static void cleanup(I *ptr)
DDName is used to identify DDD entities uniquely.
prep_type create(const name_type &)
typename registry_type::iterator iterator
static void cleanup(I &&ptr)
DDRotationMatrix * key_type
const std::complex< double > I
DDRotationMatrix * pimpl_type
Store & operator=(const Store &)=delete
Log< level::Warning, false > LogWarning
bool isDefined(const name_type &n) const