This. For at least three typical 'best practice' reasons. I know there are times best practices can be nicely ignored, but this is not one of those occasions. On the contrary. Let me lay them out again:
- these are the days of C++11 where scoped locks are readily available
- these are the days of C++11 where scoped locks are readily available
- premature optimization
- macros are evil