Core#
yup_core is the foundation every other YUP module builds on. It provides
strings and text, containers, memory management, files and streams, math,
error handling, time, data interchange (var/JSON/XML), system information, and
networking - the portable C++ backbone of the framework.
Modules covered: yup_core, yup_simd.
Note
Threading lives in yup_core too (Thread, CriticalSection, ThreadPool,
lock-free FIFOs, …), but it is documented in its own
Multithreading area to keep the audio/UI thread
guidance together.
In this area#
Strings & text -
String,StringArray,StringPairArray,Identifier,StringRef, character pointers, and Base64.Containers -
Array,OwnedArray,ReferenceCountedArray,HashMap,SortedSet,Span,AbstractFifo, andListenerList.Memory -
HeapBlock,MemoryBlock,ReferenceCountedObject,WeakReference, smart pointers,Singleton, leak detection, andAtomic.Files & streams -
File, directory iteration,InputStream/OutputStream, memory streams, ZIP, and GZIP.Results & error handling -
ResultandResultValue<T>for fallible operations.Maths -
Range,NormalisableRange,Random,BigInteger,Expression, and statistics helpers.Time -
Time,RelativeTime, andPerformanceCounter.Data interchange -
var,DynamicObject, and JSON.XML - the
XmlElement/XmlDocumentDOM and parser.Serialization - the
SerialisationTraitsframework,BinaryArchive, andvar/JSON conversion.System & application -
SystemStats,Uuid,ConsoleApplication, runtime permissions, and platform macros.Networking -
URL,WebInputStream,Socket,IPAddress, andNamedPipe.
Conventions#
American English throughout:
Color,center,initialize.Fluent, non-mutating variants: many types offer a mutating method plus a
-ed/with*counterpart that returns a new value (e.g.String::trim()/trimmed,Range::withStart).Result/ResultValue<T>for operations that can fail; assertions (jassert) for programming errors.RAII everywhere: prefer the smart pointers and scope guards in Memory over manual
new/delete.