[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)
