Boost.Null
- 大昔にボツになったと思われるものがSandboxにある
- しかしまた消えていた
[]#include[][] <boost/config.hpp>[][]namespace[] []poost[] {
[]#if[][] !defined(BOOST_NO_MEMBER_TEMPLATES)[]
[]namespace[] []detail[] {
[]struct[] []null_type[]
{
[]// Will disable some warnings about a class with all ctors[]
[]// private and no firends[]
[]friend[] []class[] []poost_null_dummy_class[];[]template[]< []class[] []AnyT[] >
[]operator[] []AnyT[]* () []const[] { []return[] 0; }[]template[]< []class[] []AnyT[], []class[] []MemT[] >
[]operator[] []MemT[] []AnyT[]::* () []const[] { []return[] 0; }[]private[]:
[]null_type[]();
[]null_type[]([]null_type[] []const[]&);
[]void[] []operator[]=([]null_type[] []const[]&);
[]void[] []operator[]&() []const[];
};} []// namespace detail[]
[]namespace[] {
[]// Workaround: static is still required for broken stdafx.cpp[]
[]// Null reference ? Can't call null_type::null_type(), so ...[]
[]static[] []detail[]::[]null_type[] []const[]& []null[] = *([]detail[]::[]null_type[]*)0;} []// namespace poost::anonymous[]
[]#else[]
[]namespace[] {
[]static[] []int[] []const[] []null[] = 0;
} []// namespace poost::anonymous[]
[]#endif[][] [][]// !defined(BOOST_NO_MEMBER_TEMPLATES)[]
} []// namespace poost[]