#include <iostream>
using namespace std;
class empty
{};
template <class Base, int c=1>
struct add_chars : Base {
char dummy[c];
};
template <class T>
struct has_trailing_unused_space {
static const bool result = sizeof (add_chars<T>) == sizeof (T);
};
int main() {
std::cout << "empty has trailing space: ";
std::cout << has_trailing_unused_space<empty>::result;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgZW1wdHkKe307CgogICAgdGVtcGxhdGUgPGNsYXNzIEJhc2UsIGludCBjPTE+CiAgICBzdHJ1Y3QgYWRkX2NoYXJzIDogQmFzZSB7CiAgICAgICAgY2hhciBkdW1teVtjXTsKICAgIH07CgogICAgdGVtcGxhdGUgPGNsYXNzIFQ+CiAgICBzdHJ1Y3QgaGFzX3RyYWlsaW5nX3VudXNlZF9zcGFjZSB7CiAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgcmVzdWx0ID0gc2l6ZW9mIChhZGRfY2hhcnM8VD4pID09IHNpemVvZiAoVCk7CiAgICB9OwoKICAgIGludCBtYWluKCkgewogICAgICAgIHN0ZDo6Y291dCA8PCAiZW1wdHkgaGFzIHRyYWlsaW5nIHNwYWNlOiAiOwogICAgICAgIHN0ZDo6Y291dCA8PCBoYXNfdHJhaWxpbmdfdW51c2VkX3NwYWNlPGVtcHR5Pjo6cmVzdWx0OwogICAgfQo=