Namespaces & API Categories
Browse classes by category with direct links to the official C++ API reference.
String & Char
CoreFull-featured UTF-8/UTF-16 string manipulation with culture-invariant comparisons, formatting, splitting, search algorithms, and seamless conversions.
SmartPointer<T>
MemoryException-safe RAII reference-counted smart pointer with lock-free control blocks, strong/weak lifecycles, and NewShared() / NewUnique() factories.
EventHandler & EventArgs
DelegatesIdiomatic C# .NET event delegate system with multicast subscription (+=, -=), member method binding, token-based unsubscription, and thread-safe dispatch.
High-precision date and time management with 100ns ticks, UTC conversion, Daylight Saving Time adjustment rules, and TimeProvider abstractions.
List, Dictionary & Set
CollectionsPure library collections mirroring .NET BCL: List<T>, Dictionary<K,V>, HashSet<T>, PriorityQueue, Queue, Stack, SortedDictionary, and LinkedList.
Concurrent Collections
Lock-FreeHigh-throughput thread-safe and lock-free structures: ConcurrentDictionary, ConcurrentQueue, ConcurrentStack, ConcurrentBag, and BlockingCollection.
Comprehensive stream and file system abstractions: File, Directory, Path, FileStream, MemoryStream, BinaryReader/Writer, and TextReader/Writer.
Socket, TCP & HTTP
NetworkCross-platform networking primitives: Socket, TcpClient, TcpListener, UdpClient, HttpClient, HttpRequestMessage, HttpResponseMessage, and RestClient<T>.
Thread, Task & Locks
ConcurrencyMulti-threaded tasking and synchronization: Thread, ThreadPool, Task<T>, Monitor, Mutex, Semaphore, SemaphoreSlim, Auto/ManualResetEvent, and Lock.
Process & SystemMetrics
TelemetrySub-5ms process discovery, observable ProcessStreamer telemetry, ETW log reader, Windows/Linux system hardware metrics, and terminal session tracking.
WebApplication & API
Web HostingASP.NET Core style micro-framework in C++: WebApplication, WebAppServer, HttpContext, ControllerBase, Dependency Injection, JSON serialization, and JWT auth.
SqlConnection & Command
DatabaseADO.NET database access with parameterized queries, in-memory SQL parsing engine, and optional SQLite persistent database backend.
ServiceCollection & ServiceProvider
IoC ContainerFull Inversion of Control container supporting Singleton, Scoped, and Transient lifetimes, factory delegates, and hierarchical scoped resolution modeled after Microsoft.Extensions.
LogManager, ILogger & TextWriter
LoggingStructured diagnostic logging framework with Console and rolling File providers, JSON/text formats, and automatic Console::Out redirection via LoggerTextWriter.
C# Simplicity with C++ Speed
Compare the elegance and conciseness of DotNetDupe APIs against standard C# .NET.
1. File I/O & Text Streaming
// C# .NET
using System;
using System.IO;
var lines = File.ReadAllLines("app.log");
foreach (var line in lines) {
if (line.Contains("ERROR")) {
Console.WriteLine($"Found: {line}");
}
}
// DotNetDupe C++
#include "System/IO/File.h"
#include "System/Console.h"
using namespace DotNetDupe::System;
using namespace DotNetDupe::System::IO;
auto lines = File::ReadAllLines("app.log");
for (const auto& line : lines) {
if (line.Contains("ERROR")) {
Console::WriteLine(String::Format("Found: {0}", line));
}
}
2. Thread-Safe Event Delegates
// C# Event Handling
public class Worker {
public event EventHandler Completed;
public void DoWork() {
Completed?.Invoke(this, EventArgs.Empty);
}
}
worker.Completed += (sender, e) => {
Console.WriteLine("Done!");
};
// DotNetDupe Event Handling
#include "System/EventHandler.h"
#include "System/Console.h"
class Worker {
public:
EventHandler Completed;
void DoWork() {
Completed.Invoke(this, EventArgs::Empty());
}
};
worker.Completed += [](void* sender, const EventArgs& e) {
Console::WriteLine("Done!");
};
3. Generic Collections & Dictionaries
// C# Collections
var scores = new Dictionary();
scores.Add("Alice", 95);
scores.Add("Bob", 88);
if (scores.TryGetValue("Alice", out int val)) {
Console.WriteLine($"Score: {val}");
}
// DotNetDupe Collections
#include "System/Collections/Generic/Dictionary.h"
#include "System/Console.h"
Dictionary scores;
scores.Add("Alice", 95);
scores.Add("Bob", 88);
int val = 0;
if (scores.TryGetValue("Alice", val)) {
Console::WriteLine("Score: {0}", val);
}