A variable in any programming language is an element of some sort of associative container, where the variable name is the key. The programming languages provide more natural and less verbose ways of accessing variables, instead of building maps and explicitly searching for an element for accessing its value. Unfortunately C++ meta-programming doesn't have the machinery for manipulating with types as with regular variables. Maybe future languages may allow doing this, thus bringing more abstraction level to the code, where the same code syntax would apply equally to the types and variables. In the particular case of policies it would be very convenient to change the member types of a class at compile time similar to changing variables at runtime.