issue creating a type in "meta-like" programming

I've been trying to play around with structs, templates, typedefs, and all that other fun stuff that ties into the so called metaprogramming form of writing code.

What I am trying to do is create a type that has 1 typename placeholder and 7 integer placeholders. I would like to create a few constant variables of this type to serve the purpose of a standard for the rest of my code, and also intialize variables that are subject to change. My code does not compile for obvious reasons. I know there is a lot wrong, and I am unsure how to fix some of it.

Thanks in advance for all help with my issue. Please, feel free to share any ideas that may make this easier/more understandable. I'm almost certain that my attempt is by no means a very good way of going about doing this. However, I've been told otherwise before.

Thanks Cubbi. I've actually already been all over the boost.Units solution. I am trying to do something similar, but I don't exactly need to specialize as much as what the boost offers. In addition, I feel like writing out my own library would help me to learn quite a bit, and I would also be aware of exactly what I have and how I did it.