#include <tr1/type_traits> // std::tr1::is_integral, true_type, false_type
#include <cstring> // std::memcpy(), memset(), memcmp()
#include <cassert> // assert()
#include <tr1/type_traits> // std::tr1::is_integral, true_type, false_type
#include <cstring> // std::memcpy(), memset(), memcmp()
#include <cassert> // assert()