In C++, how can I make typedefs visible to every file in my project?

user231536 picture user231536 · Apr 19, 2010 · Viewed 15.2k times · Source

I have a typedef

 typedef unsigned int my_type;

used in a file. I would like to make it visible across all my files, without putting it in a header file included by everything. I don't want to go the header file route because as it stands this will be the only declaration in the header file (and it seems unnecessary to add a file just for this).

Is there a way to do this?

If instead I had:

typedef X my_type;

where X was a class, would I need to include X.h everywhere and have the typedef at the end of X.h ?

Answer

Billy ONeal picture Billy ONeal · Apr 19, 2010

I don't want to go the header file route because as it stands this will be the only declaration in the header file (and it seems unnecessary to add a file just for this).
What's the problem with that? It seems just as unnecessary to avoid creating a file at all costs.

Is there a way to do this?
Not as far as I am aware.

would I need to include X.h everywhere and have the typedef at the end of X.h ?
No, but that's probably the best thing. The only reason you should be doing that is if X is a template, and you need templates to be in headers anyway.