Boost's "cstdint" Usage
Posted
by patt0h
on Stack Overflow
See other posts from Stack Overflow
or by patt0h
Published on 2010-04-25T17:08:49Z
Indexed on
2010/04/25
17:13 UTC
Read the original article
Hit count: 259
Boost's C99 stdint implementation is awfully handy. One thing bugs me, though. They dump all of their typedefs into the boost namespace
. This leaves me with three choices when using this facility:
- Use "
using namespace boost
" - Use "
using boost::[u]<type><width>_t
" - Explicitly refer to the target type with the
boost::
prefix; e.g.,boost::uint32_t foo = 0;
- Option ? 1 kind of defeats the point of namespaces. Even if used within local scope (e.g., within a function), things like function arguments still have to be prefixed like option ? 3.
- Option ? 2 is better, but there are a bunch of these types, so it can get noisy.
- Option ? 3 adds an extreme level of noise; the
boost::
prefix is often = to the length of the type in question.
My question is: What would be the most elegant way to bring all of these types into the global namespace? Should I just write a wrapper around boost/cstdint.hpp
that utilizes option ? 2 and be done with it?
Also, wrapping the header like so didn't work on VC++ 10 (problems with standard library headers):
namespace Foo
{
#include <boost/cstdint.hpp>
using namespace boost;
}
using namespace Foo;
Even if it did work, I guess it would cause ambiguity problems with the ::boost
namespace.
© Stack Overflow or respective owner