Challenge Library
Coding Challenges
5,893 curated questions across every arena — browse by topic, then jump into a live 3-minute battle to put them to the test.
Filter by type
Filter by difficulty
Popular topics
5,893 challenges total
- Code AnalysisIntermediate
constexpr used as array bound
cppconstexprarraycode-analysis - Code AnalysisHard
Header function missing inline
cppodrinlinelinker - Code AnalysisIntermediate
vector uses copy when move may throw
cppexception-safetynoexceptvector - Code AnalysisBeginner
Copy-init from derived to base object
cppobject-slicingvirtualcode-analysis - Code AnalysisIntermediate
Infinite loop optimized away
cppatomicsundefined-behavioroptimization - Code AnalysisBeginner
Use after move of string
cppmove-semanticsmoved-fromcode-analysis - Code AnalysisBeginner
Returning data() pointer of local vector
cppdanglingstlvector - Code AnalysisIntermediate
Calling empty std::function
cppstd-functioncode-analysis - Code AnalysisHard
weak_ptr use_count check is racy
cppsmart-pointersweak_ptrthread-safety - Code AnalysisHard
Forwarding reference deduction
cpptemplatesforwarding-referencecode-analysis - Code AnalysisHard
decltype(auto) vs auto
cppautodecltypetype-deduction - Code AnalysisIntermediate
No implicit void* conversion
cpptypingvoid-pointercode-analysis - Code AnalysisBeginner
Lambda capture by reference outliving its scope
lambdacapturedangling - Code AnalysisBeginner
Missing virtual destructor deleted through base
virtual-destructorpolymorphismub - Code AnalysisBeginner
Unsigned underflow in a countdown loop
unsigned-underflowloopsout-of-bounds - Code AnalysisBeginner
Range-for over a temporary container
string-viewrange-fordangling - Code AnalysisBeginner
Memory leak from an early return
raiileakraw-pointer - Code AnalysisBeginner
Slicing when passing derived by value
object-slicingpolymorphismpass-by-value - Code AnalysisIntermediate
Iterator invalidation while erasing in a vector loop
iterator-invalidationvectorerase - Code AnalysisIntermediate
Dangling pointer to a local vector's data
dangling-pointervectorlifetime - Code AnalysisIntermediate
Attempting to copy a unique_ptr
unique-ptrmove-onlycompile-error - Code AnalysisIntermediate
Cross-thread visibility with a relaxed flag
memory-orderatomicsdata-race - Code AnalysisIntermediate
Self-deadlock from locking a non-recursive mutex twice
deadlockmutexconcurrency - Code AnalysisHard
Use-after-move of a std::string argument
use-after-movestringrvalue - Code AnalysisHard
Strict aliasing violation through reinterpret_cast
strict-aliasingreinterpret-castub - Code AnalysisHard
Uninitialized read causing sanitizer failure
uninitializedsanitizerub - Code AnalysisHard
Condition variable lost wakeup with a missing lock
condition-variableracelost-wakeup - Code AnalysisIntermediate
Missing std::forward loses value category
perfect-forwardingstd-forwardvalue-category - Code AnalysisBeginner
relaxed store load reordering output
atomicsmemory-modelcode-analysis - Code AnalysisBeginner
false sharing loop output
false-sharingperformancecode-analysis - Code AnalysisBeginner
initializer_list dangling output
initializer-listlifetimecode-analysis - Code AnalysisBeginner
const char8_t mismatch compile
char8_tunicodecode-analysis - Code AnalysisBeginner
span over temporary output
spandanglingcode-analysis - Code AnalysisBeginner
scope guard throw double output
RAIIexceptionscode-analysis - Code AnalysisIntermediate
atomic double CAS loop output
atomicsfloating-pointcode-analysis - Code AnalysisIntermediate
flat_map sort key output
flat_mapcontainerscode-analysis - Code AnalysisIntermediate
structured binding reference output
structured-bindingsrange-forcode-analysis - Code AnalysisIntermediate
pimpl unique_ptr inline dtor output
pimplunique_ptrincomplete-typecode-analysis - Code AnalysisIntermediate
to_chars buffer too small output
to_charsnumericcode-analysis - Code AnalysisHard
seqlock torn read output
seqlockdata-racecode-analysis - Code AnalysisHard
ADL swap recursion output
ADLname-lookupcode-analysis - Code AnalysisHard
friend injection capture output
friend-injectionmetaprogrammingcode-analysis - Code AnalysisHard
constexpr virtual dispatch output
constexprvirtualcode-analysis - Code AnalysisHard
dependent name template disambiguation output
two-phase-lookuptemplate-disambiguationcode-analysis - Code AnalysisBeginner
Function-Local Static Guard Output
staticmagic-staticsinit - Code AnalysisBeginner
std::atomic wait Missing Predicate
atomicwaitrace - Code AnalysisBeginner
Latch Misused as Reusable
latchreusesync - Code AnalysisBeginner
DCLP Missing Release Ordering
dclpsingletonmemory-order - Code AnalysisBeginner
union Type Punning UB
uniontype-punningub - Code AnalysisBeginner
std::function Allocation Cost
std_functionsboperformance - Code AnalysisBeginner
CRTP Static Dispatch Output
crtpstatic-dispatchtemplates - Code AnalysisBeginner
constinit with Dynamic Initializer
constinitstatic-initcompile-error - Code AnalysisIntermediate
Coroutine Frame Dangling Reference
coroutineslifetimedebugging - Code AnalysisIntermediate
Suspended Coroutine Parameter Lifetime
coroutinesframesparameters - Code AnalysisIntermediate
Barrier Completion Function Deadlock
barrierdeadlockphases - Code AnalysisIntermediate
Semaphore Release Overrun
semaphoreubcounters - Code AnalysisIntermediate
atomic_ref Misalignment
atomic_refalignmentlayout - Code AnalysisHard
Lock-Free Stack ABA Root Cause
lock-freeabacas - Code AnalysisHard
Hazard Pointer Ordering Bug
hazard-pointersmemory-orderrace - Code AnalysisHard
Static Init Order Fiasco
static-initodrtranslation-unit
Practice now, dominate the arena
Every challenge here is drawn from the live Code Royale pool. Review a question, then head to the arena to answer under pressure against a real opponent — 3-minute matches, Elo ranking, and badge tiers on the line.