// { dg-do assemble } template <int object_size> class _fixed_size_allocator { private: struct something { }; static something * asdf; public: static void delete_object (); }; template <class T> class object_allocator { private: typedef _fixed_size_allocator<sizeof (T)> allocator; public: static void deallocate (T * p) { allocator::delete_object (reinterpret_cast<void *> (p)); } };