From 2095e8d5a943eeaf86850e34eccc475a1e9a8bb4 Mon Sep 17 00:00:00 2001 From: John Maddock Date: Wed, 25 Jan 2006 10:44:01 +0000 Subject: [PATCH] Improve is_pod docs. [SVN r32412] --- doc/type_traits.qbk | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/doc/type_traits.qbk b/doc/type_traits.qbk index 5b2cf7a..08c7a87 100644 --- a/doc/type_traits.qbk +++ b/doc/type_traits.qbk @@ -2200,7 +2200,16 @@ expression that evaluates to /false/: void is not an object type] __inherit If T is a (possibly cv-qualified) POD type then inherits from __true_type, otherwise inherits from __false_type. -__std_ref 3.9p10 and 9p4. +POD stands for "Plain old data". +Arithmetic types, and enumeration types, +a pointers and pointer to members are all PODs. Classes and unions can also +be POD's if they have no non-static data members that are of reference or +non-POD type, no user defined constructors, no user defined assignment +operators, no private or protected non-static data members, +no virtual functions and no base classes. Finally, a cv-qualified POD is +still a POD, as is an array of PODs. + +__std_ref 3.9p10 and 9p4 (Note that POD's are also aggregates, see 8.5.1). __compat If the compiler does not support partial-specialization of class templates, then this template can not be used with function types.