<p>I've always used a <code>*.h</code> file for my class definitions, but after reading some boost library code, I realised they all use <code>*.hpp</code>. I've always had an aversion to that file extension, I think mainly because I'm not used to it.</p>

<p>What are the advantages and disadvantages of using <code>*.hpp</code> over <code>*.h</code>?</p>

It does not matter which extension you use. Either one is OK.
I use
```
*.h
```
for C and
```
*.hpp
```
for C++.