# FeatStd V3.0.0

# FeatStd CMake Switches

<div class="contents" id="bkmrk-note%3A-for-detailed-i"><div class="textblock"><dl class="note"><dt>**Note:**</dt><dd>For detailed information on FeatStd configuration please see <span style="color: rgb(230, 126, 35);">[Application Development &gt; FeatStd &gt; FeatStd Features](https://doc316en.candera.eu/link/584#bkmrk-page-title)</span></dd></dl><table class="doxtable" style="width: 100%;"><tbody><tr><th style="width: 66.8727%;">**V2.10.0**</th><th style="width: 33.1273%;">**V3.0.0**</th></tr><tr><td style="width: 66.8727%;">CGIFEATURE\_ENABLE\_LOG has been unified with FEATSTD\_ENABLE\_LOG</td><td style="width: 33.1273%;">FEATSTD\_LOG\_ENABLED</td></tr><tr><td style="width: 66.8727%;">CGIFEATURE\_ENABLE\_MEMORYPOOL has been unified with FEATSTD\_ENABLE\_MEMORYPOOL</td><td style="width: 33.1273%;">FEATSTD\_MEMORYPOOL\_ENABLED</td></tr><tr><td style="width: 66.8727%;">CGIFEATURE\_ENABLE\_MEMORY\_STATISTIC has been unified with FEATSTD\_ENABLE\_SYSTEM\_MEMORY\_STATISTIC</td><td style="width: 33.1273%;">FEATSTD\_SYSTEM\_MEMORY\_STATISTIC\_ENABLED</td></tr><tr><td style="width: 66.8727%;">CGIFEATURE\_SYSTEM\_MEMORY\_STATISTIC\_FILE\_AND\_LINE\_TRACKING has been unified with FEATSTD\_ENABLE\_SYSTEM\_MEMORY\_STATISTIC\_FILE\_AND\_LINE\_TRACKING</td><td style="width: 33.1273%;">FEATSTD\_SYSTEM\_MEMORY\_STATISTIC\_FILE  
\_AND\_LINE\_TRACKING\_ENABLED</td></tr><tr><td style="width: 66.8727%;">CGIFEATURE\_FRACTIONAL\_NUMBER\_TYPE has been unified with FEATSTD\_FRACTIONAL\_NUMBER\_TYPE</td><td style="width: 33.1273%;">FEATSTD\_FRACTIONAL\_NUMBER\_TYPE</td></tr><tr><td style="width: 66.8727%;">CGIFEATURE\_ENABLE\_MONITOR has been unified with FEATSTD\_ENABLE\_MONITOR</td><td style="width: 33.1273%;">FEATSTD\_MONITOR\_ENABLED</td></tr><tr><td style="width: 66.8727%;">COURIER\_ENABLE\_IPC has been unified with FEATSTD\_ENABLE\_IPC</td><td style="width: 33.1273%;">FEATSTD\_IPC\_ENABLED</td></tr><tr><td style="width: 66.8727%;">FEATSTD\_ENABLE\_THREADSAFETY</td><td style="width: 33.1273%;">FEATSTD\_THREADSAFETY\_ENABLED</td></tr><tr><td style="width: 66.8727%;">FEATSTD\_ENABLE\_UNITTEST\_FRAMEWORK</td><td style="width: 33.1273%;">FEATSTD\_UNITTEST\_FRAMEWORK\_ENABLED</td></tr><tr><td style="width: 66.8727%;">FEATSTD\_ENABLE\_DLT</td><td style="width: 33.1273%;">FEATSTD\_DLT\_ENABLED</td></tr></tbody></table>

<dl class="note"><dt>**Note:**</dt><dd>Refer to the <span style="color: rgb(230, 126, 35);">[Candera 3.0.0 CMake Changelog](https://doc316en.candera.eu/link/982#bkmrk-candera%2Ffeatstd-buil-0)</span> to learn about [Candera](http://dev.doc.cgistudio.at/APILINK/namespace_candera.html "[DataBinding_RefTypeSample]") V3.0.0 CMake switch modifications.</dd></dl></div></div>---

# FeatStd Diagnostics

#### MemoryAppender added

[MemoryAppender](http://dev.doc.cgistudio.at/APILINK/class_feat_std_1_1_diagnostics_1_1_memory_appender.html) is added which allows logging events to a buffer in memory.

---

# FeatStd Memory Management

#### Removed Sharing Object

The outdated and orphaned file SharingObject.h has been removed.

<div class="contents" id="bkmrk-"><div class="contents"><div class="textblock">---

</div></div></div>#### Retain Count atomic and uncopyable

The retain count of shared objects - enabled by macro "FEATSTD\_SHARED\_POINTER\_DECLARATION" - has been made atomic to make increments and decrements thread-safe. Additionally the retain count has been made uncopyable to avoid copying the retain count when cloning shared objects.

---

# FeatStd Memory Pool

#### Enforce Initialization of BackingHeap

Initialization of BackingHeap (MallocBackingHeap) is enforced. BackingHeap initializations are reference counted and missing initialization will assert. This is to detect missing initialization early, even if MallocBackingHeap does not require Init (but switching to other BackingHeap will cause crashes then). A new parameter in [BackingHeap::Destroy()](http://dev.doc.cgistudio.at/APILINK/class_feat_std_1_1_memory_management_1_1_backing_heap.html#abee18614bcc40224124c4db9ed85dc72) / [MallocBackingHeap::Destroy()](http://dev.doc.cgistudio.at/APILINK/class_feat_std_1_1_memory_management_1_1_malloc_backing_heap.html#a2db74edacb1ea0ed81db4c60290da714) forces the destruction of the heap (even if init counter is larger 1).

---

# FeatStd Monitor

#### Monitor module migrated from Candera

The [Candera](http://dev.doc.cgistudio.at/APILINK/namespace_candera.html "[DataBinding_RefTypeSample]") module CanderaMonitor has been migrated to FeatStd.

<div class="contents" id="bkmrk-see-also%3A-featstd-cm"><div class="textblock"><dl class="see"><dt>**See also:**</dt><dd><span style="color: rgb(230, 126, 35);">[FeatStd CMake Switches](https://doc316en.candera.eu/link/984#bkmrk-page-title)</span> for the changed CMake feature flag related to Monitor functionality.</dd></dl></div></div>---

# FeatStd Util

#### String Ids for translatable Text

A new class [TextId](http://dev.doc.cgistudio.at/APILINK/class_feat_std_1_1_text_id.html) has been added for accessing translatable texts from a string.

<div class="contents" id="bkmrk-see-also%3A-string%3A%3Ast"><div class="textblock"><dl class="see"><dt>**See also:**</dt><dd>[String::String(const TextId&amp; id)](http://dev.doc.cgistudio.at/APILINK/class_feat_std_1_1_string.html#a5533f601ec5f8a72649d61fa9bde65ea)</dd></dl></div></div>---