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
150 challenges matching your filters
Clear topic filter- Multiple ChoiceBeginner
Value category of std::move result
cppvalue-categoriesmove-semantics - Multiple ChoiceBeginner
Returning a named local and NRVO
cpprvomove-semantics - Multiple ChoiceIntermediate
std::move in return statement pessimizes
cpprvomove-semanticsanti-pattern - Multiple ChoiceBeginner
Rule of Three triggers
cpprule-of-threeraii - Multiple ChoiceBeginner
Rule of Zero rationale
cpprule-of-zeroraii - Multiple ChoiceIntermediate
Declared move ctor disables implicit copy
cpprule-of-fivespecial-member-functions - Multiple ChoiceHard
Pass-by-value then move idiom
cppmove-semanticsparameter-passing - Multiple ChoiceBeginner
Moved-from object guarantees
cppmove-semanticsmoved-from - Multiple ChoiceBeginner
make_shared single allocation
cppsmart-pointersmake_shared - Multiple ChoiceIntermediate
make_shared weak_ptr memory retention
cppsmart-pointersmake_sharedweak_ptr - Multiple ChoiceBeginner
unique_ptr is not copyable
cppsmart-pointersunique_ptr - Multiple ChoiceHard
shared_ptr aliasing constructor
cppsmart-pointersshared_ptraliasing - Multiple ChoiceBeginner
weak_ptr lock pattern
cppsmart-pointersweak_ptrthread-safety - Multiple ChoiceIntermediate
shared_ptr cycle leak
cppsmart-pointersshared_ptrweak_ptr - Multiple ChoiceBeginner
unique_ptr custom deleter size
cppsmart-pointersunique_ptrsizeof - Multiple ChoiceIntermediate
shared_ptr thread safety scope
cppsmart-pointersthread-safetyshared_ptr - Multiple ChoiceHard
enable_shared_from_this caveat
cppsmart-pointersenable_shared_from_this - Multiple ChoiceBeginner
Reference reseating
cppreferences - Multiple ChoiceBeginner
const member function mutability
cppconst-correctnessmutable - Multiple ChoiceIntermediate
const and the trailing return / APIs
cppconst-correctnessapi-design - Multiple ChoiceIntermediate
Top-level const in function parameters
cppconst-correctnessfunction-types - Multiple ChoiceHard
const correctness of value params
cppconst-correctnessapi-design - Multiple ChoiceBeginner
Pointer to const vs const pointer
cppconst-correctnesspointers - Multiple ChoiceBeginner
Virtual destructor necessity
cppvirtualdestructorundefined-behavior - Multiple ChoiceBeginner
override keyword purpose
cppvirtualoverride - Multiple ChoiceBeginner
Default argument vs virtual dispatch
cppvirtualdefault-argumentsgotcha - Multiple ChoiceHard
Object slicing by value parameter
cppobject-slicingvirtualgotcha - Multiple ChoiceIntermediate
vtable pointer location
cppvtableabi - Multiple ChoiceIntermediate
Calling virtual from constructor
cppvirtualconstructiongotcha - Multiple ChoiceHard
final on class disables devirtualization?
cppvirtualfinaloptimization - Multiple ChoiceHard
SFINAE meaning
cpptemplatessfinae - Multiple ChoiceIntermediate
void_t detection idiom
cpptemplatessfinaevoid_t - Multiple ChoiceHard
Concepts vs SFINAE error quality
cppconceptstemplatesc++20 - Multiple ChoiceIntermediate
Two-phase name lookup
cpptemplatestwo-phase-lookuptypename - Multiple ChoiceHard
Class template argument deduction
cpptemplatesctadc++17 - Multiple ChoiceIntermediate
Dependent base member access
cpptemplatesdependent-nametwo-phase-lookup - Multiple ChoiceBeginner
vector reallocation invalidates iterators
cppstlvectoriterator-invalidation - Multiple ChoiceBeginner
vector reserve and pointer stability
cppstlvectoriterator-invalidation - Multiple ChoiceBeginner
unordered_map rehash pointer stability
cppstlunordered_mapiterator-invalidation - Multiple ChoiceIntermediate
map insert hint with end()
cppstlmaphint - Multiple ChoiceBeginner
deque memory layout
cppstldeque - Multiple ChoiceIntermediate
vector<bool> proxy reference
cppstlvector-boolproxy - Multiple ChoiceBeginner
string SSO
cppstlstringsso - Multiple ChoiceHard
COW string status
cppstlstringcow - Multiple ChoiceBeginner
Emplace_back vs push_back
cppstlvectoremplace - Multiple ChoiceBeginner
Exception guarantee levels
cppexception-safety - Multiple ChoiceIntermediate
Strong guarantee via copy-and-swap
cppexception-safetycopy-and-swap - Multiple ChoiceIntermediate
noexcept effect on move_if_noexcept
cppexception-safetyvectornoexcept - Multiple ChoiceIntermediate
Throwing from a noexcept function
cppnoexceptexception-safety - Multiple ChoiceIntermediate
Destructors are implicitly noexcept
cppnoexceptdestructorexception-safety - Multiple ChoiceBeginner
Lambda capture by reference risk
cpplambdacapturedangling - Multiple ChoiceBeginner
Init-capture move semantics
cpplambdainit-capturemove-semantics - Multiple ChoiceHard
std::function type-erasure overhead
cppstd-functiontype-erasureperformance - Multiple ChoiceIntermediate
Stateless lambda to function pointer
cpplambdafunction-pointer - Multiple ChoiceIntermediate
Generic lambda and auto capture
cpplambdageneric-lambdac++14 - Multiple ChoiceBeginner
mutable lambda capture
cpplambdamutable - Multiple ChoiceIntermediate
optional value access errors
cppoptionalstl - Multiple ChoiceBeginner
variant valueless_by_exception
cppvariantexception-safetyc++17 - Multiple ChoiceIntermediate
any heap allocation properties
cppanystlc++17 - Multiple ChoiceHard
variant visit return type & exhaustive
cppvariantvisitc++17
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.