Challenge Library
Coding Challenges
5,893 curated questions across every arena — browse by topic, then jump into a live 2-minute battle to put them to the test.
Filter by type
Filter by difficulty
Popular topics
4,318 challenges matching your filters
- Multiple ChoiceHard
lock-free stack ABA mitigation
lock-freeABACAS - Multiple ChoiceHard
shared_ptr lock-free progress hazard
shared_ptrlock-freehazard-pointers - Multiple ChoiceHard
constexpr dynamic allocation requirement
constexprallocationC++20 - Multiple ChoiceHard
typename dependent qualified name
two-phase-lookuptypenametemplates - Multiple ChoiceHard
if constexpr discarded branch syntax
if-constexprtemplatesC++17 - Multiple ChoiceBeginner
jthread RAII and Auto-join
jthreadraiicpp20 - Multiple ChoiceBeginner
std::latch vs Barrier
latchbarriercpp20 - Multiple ChoiceBeginner
Counting Semaphore acquire/try_acquire
semaphoreconcurrencycpp20 - Multiple ChoiceBeginner
Function-Local Static Initialization Guard
staticmagic-staticsthread-safety - Multiple ChoiceBeginner
std::generator Suspension Semantics
generatorrangescpp23 - Multiple ChoiceBeginner
std::stop_token Cooperative Cancellation
stop_tokencancellationcpp20 - Multiple ChoiceBeginner
Atomic wait/notify Semantics
atomicwaitnotifycpp20 - Multiple ChoiceBeginner
std::barrier Phase Completion
barrierphasessynchronization - Multiple ChoiceIntermediate
Memory Fence Ordering Semantics
fencesmemory-orderatomics - Multiple ChoiceIntermediate
Double-Checked Locking with Atomics
dclpatomicssingleton - Multiple ChoiceIntermediate
std::call_once Guarantees
call_onceonce_flagsingleton - Multiple ChoiceIntermediate
Inline Variable ODR Guarantee
inline-variableodrcpp17 - Multiple ChoiceIntermediate
constinit Definition Meaning
constinitstatic-initcpp20 - Multiple ChoiceIntermediate
std::span static_extent Purpose
spanstatic-extentcpp20 - Multiple ChoiceIntermediate
std::bit_cast Requirements
bit_casttype-punningcpp20 - Multiple ChoiceIntermediate
Union Active Member UB
unionactive-memberub - Multiple ChoiceIntermediate
std::function SBO Behavior
std_functionsboallocations - Multiple ChoiceHard
CRTP Mixin Purpose
crtpmixinstatic-polymorphism - Multiple ChoiceHard
Coroutine Frame Lifetime and Destruction
coroutineslifetimecpp20 - Multiple ChoiceHard
co_await Customization Point Lookup
coroutinesco_awaitcustomization - Multiple ChoiceHard
Executors and Schedulers Distinction
executorsschedulersp2300 - Multiple ChoiceHard
std::atomic_ref Requirements
atomic_refalignmentcpp20 - Multiple ChoiceHard
Lock-Free Stack ABA Hazard
lock-freeabacas - Multiple ChoiceHard
RCU Read-Side Guarantees
rcumemoryconcurrency - Multiple ChoiceBeginner
compare_exchange_weak vs strong spurious failure
atomiccompare_exchangeCAS - Multiple ChoiceBeginner
release-acquire pairing guarantee
atomicmemory_orderpublish-subscribe - Multiple ChoiceIntermediate
Sequentially consistent fences
atomicfencememory_order_seq_cst - Multiple ChoiceBeginner
atomic bool spin vs condition_variable
condition_variableatomicspin - Multiple ChoiceIntermediate
False sharing in per-thread counters
false-sharingcache-lineperformance - Multiple ChoiceBeginner
AoS vs SoA cache-friendly layout
data-layoutSoAcache - Multiple ChoiceIntermediate
Virtual dispatch vs CRTP static polymorphism
CRTPvirtualdispatch - Multiple ChoiceHard
Devirtualization opportunities
devirtualizationoptimizationvirtual - Multiple ChoiceIntermediate
Link-time optimization benefits
LTOoptimizationbuild - Multiple ChoiceBeginner
Profile-guided optimization workflow
PGOoptimizationprofiling - Multiple ChoiceHard
noexcept and vector reallocation
noexceptvectorreallocation - Multiple ChoiceIntermediate
Strong vs basic vs nothrow guarantee
exception-safetyvectorguarantees - Multiple ChoiceBeginner
Copy-and-swap idiom purpose
copy-and-swapexception-safetyoperator= - Multiple ChoiceIntermediate
Mandatory copy elision cases
copy-elisionC++17prvalue - Multiple ChoiceBeginner
NRVO vs RVO behavior
NRVORVOreturn-value - Multiple ChoiceHard
Dangling reference from operator[]
dangling-referenceoperator[]UB - Multiple ChoiceIntermediate
vector bool proxy iterator pitfalls
vector-boolproxyreference - Multiple ChoiceBeginner
optional reference workaround
optionalreference_wrapperworkaround - Multiple ChoiceBeginner
reference_wrapper vs raw reference
reference_wrappercontainerreference - Multiple ChoiceIntermediate
std tuple vs named struct
tuplestructreadability - Multiple ChoiceBeginner
Aggregate vs constructor initialization
aggregateinitializationC++20 - Multiple ChoiceIntermediate
Designated initializer ordering rules
designated-initializersC++20initialization - Multiple ChoiceHard
Writing CTAD deduction guides
CTADdeduction-guidetemplates - Multiple ChoiceBeginner
Most vexing parse resolution
most-vexing-parsesyntaxinitialization - Multiple ChoiceIntermediate
[CSS] @keyframes Keyframes and transitions
qacsscssqa - Multiple ChoiceIntermediate
[CSS] transition Keyframes and transitions
qacsscssqa - Multiple ChoiceIntermediate
[CSS] easing Keyframes and transitions
qacsscssqa - Multiple ChoiceIntermediate
[CSS] fill-mode Keyframes and transitions
qacsscssqa - Multiple ChoiceIntermediate
[CSS] will-change Keyframes and transitions
qacsscssqa - Multiple ChoiceBeginner
[CSS] Content Content, padding, border, margin
qacsscssqa - Multiple ChoiceBeginner
[CSS] Padding Content, padding, border, margin
qacsscssqa
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 — 2-minute matches, Elo ranking, and badge tiers on the line.