Plain Old C++ Object

Like the term POJO (Plain Old Java Object) in the Java world, the term Plain Old C++ object or its acronym POCO means a C++ artifact that is neither defined by nor coupled to the underlying C++ component framework that manipulates it.

Examples of such an artifact include, for instance, instances of C++ classes, K&R structs, unions, or even functions (as function pointers). This is contrast to component model in classic C++ component frameworks, such as OMG-CCM, JTRS-SCA core framework (CF), OpenSOA's SCA for C++. These classic component frameworks either dedicate a proprietary component programming model (a super class), or mandate component implementations to be tightly coupled to the underlying framework (calling its runtime).