+template<typename T>
+inline const Architecture::PatternList &Architecture::get_patterns() const
+{
+ std::map<std::string, PatternList>::const_iterator 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);
+}