[objects.within.classes] # 16 Library introduction [[library]](./#library) ## 16.3 Method of description [[description]](description#objects.within.classes) ### 16.3.3 Other conventions [[conventions]](conventions#objects.within.classes) #### 16.3.3.6 Private members [objects.within.classes] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L945) [[support]](support "17 Language support library") through [[exec]](exec "33 Execution control library") and[[depr]](depr "Annex D (normative) Compatibility features") do not specify the representation of classes, and intentionally omit specification of [class members](class.mem "11.4 Class members [class.mem]")[.](#1.sentence-1) An implementation may define static or non-static class members, or both, as needed to implement the semantics of the member functions specified in [[support]](support "17 Language support library") through [[exec]](exec "33 Execution control library") and [[depr]](depr "Annex D (normative) Compatibility features")[.](#1.sentence-2) [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L953) For the sake of exposition, some subclauses provide representative declarations, and semantic requirements, for private members of classes that meet the external specifications of the classes[.](#2.sentence-1) The declarations for such members are followed by a comment that ends with *exposition only*, as in:streambuf* sb; // *exposition only* [3](#3) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lib-intro.tex#L963) An implementation may use any technique that provides equivalent observable behavior[.](#3.sentence-1)