Defined in omni/extras/PathMap.h

template<typename T, class Hash = PathHash, class KeyEqual = PathEqual>
using omni::extras::UnorderedPathMap = std::unordered_map<std::string, T, Hash, KeyEqual>

An unordered map to store file paths and associated data according to local OS rules.

Templated type to use to create an unordered map from a file name or file path to another object. The map implementation is based on the std::unordered_map<> implementation. This will treat the key as though it is a file path on the local system - on Windows the comparisons will be case insensitive while on Linux they will be case sensitive. This is also suitable for storing environment variables since they are also treated in a case insensitive manner on Windows and case insensitive on Linux.


A std::unordered_map<> object is usually implemented as a hash table of lists or trees and will take on that algorithm’s performance and storage characteristics. Please consider this when choosing a container type.

Template Parameters
  • T – The type for the map to contain as the value for each path name key.

  • Hash – The string hashing functor to use to generate hash values for each path name key.

  • KeyEqual – The string comparison functor to use to test if two path name keys are equal