+template<typename T>
+inline const Architecture::PatternList &Architecture::get_patterns() const
+{
+ auto i = filename_patterns.find(typeid(T).name());
+ if(i!=filename_patterns.end())
+ return i->second;
+
+ static PatternList empty;
+ return empty;
+}
+
+template<typename T>
+inline std::string Architecture::create_filename(const std::string &base) const
+{
+ const PatternList &patterns = get_patterns<T>();
+ return patterns.empty() ? base : patterns.front().apply(base);
+}
+