Error map

no matching function for call to C++: error: no matching function for call to 'f(int, const char*)'

C/C++ · layer 4, Application & API

Open the full error page →

Centre: this error. First ring: errors it is linked with (9). Outer ring: what those are linked with. Colours show the layer of a request each error belongs to. Click any dot to re-centre the map on it; hover to follow its connections. The centre dot opens the error page.

no matching function for call to — C++: error: no matching function for call to 'f(int, const char*)' (C/C++)no matching…no match for 'operator' — C++: error: no match for 'operator<<' (operand types are 'std::ostream' and 'X') (C/C++)no match for 'opera…invalid conversion from — C++: error: invalid conversion from 'const char*' to 'char*' [-fpermissive] (C/C++)invalid conversion …use of deleted function — C++: error: use of deleted function 'X::X(const X&)' — copying a non-copyable type (C/C++)use of deleted func…expected primary-expression before — C++: error: expected primary-expression before ')' token (C/C++)expected primary-ex…call of overloaded is ambiguous — C++: error: call of overloaded 'f(int)' is ambiguous (C/C++)call of overloaded …cannot declare variable to be of abstract type — C++: error: cannot declare variable 'x' to be of abstract type 'Shape' (pure virtual functions) (C/C++)cannot declare vari…template argument deduction/substitution failed — C++: error: template argument deduction/substitution failed / couldn't deduce template parameter (C/C++)template argument d…AddressSanitizer: heap-buffer-overflow — C/C++: ==ERROR: AddressSanitizer: heap-buffer-overflow on address — READ/WRITE of size N (C/C++)AddressSanitizer: h…AddressSanitizer: heap-use-after-free — C/C++: ==ERROR: AddressSanitizer: heap-use-after-free on address — memory used after delete/free (C/C++)AddressSanitizer: h…discards qualifiers — C++: error: passing 'const X' as 'this' argument discards qualifiers [-fpermissive] (C/C++)discards qualifiersneed typename before dependent name — C++: error: need 'typename' before 'T::iterator' because 'T' is a dependent scope (C/C++)need typename befor…ISO C++ forbids comparison between pointer and integer — C++: error: ISO C++ forbids comparison between pointer and integer [-fpermissive] (C/C++)ISO C++ forbids com…does not name a type — C++: error: 'string' does not name a type (C/C++)does not name a typenarrowing conversion — C++: error: narrowing conversion of 'x' from 'int' to 'char' inside { } [-Wnarrowing] (C/C++)narrowing conversioncomparison of integers of different signs — C/C++: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' [-Wsign-compare] (C/C++)comparison of integ…double free or corruption — C/C++: free(): double free detected / double free or corruption (out) — Aborted (core dumped) (C/C++)double free or corr…incomplete type — C++: error: invalid use of incomplete type 'class X' — forward declaration only (C/C++)incomplete typeis private within this context — C++: error: 'int X::secret' is private within this context (C/C++)is private within t…declared and not used — Go: declared and not used: x / "fmt" imported and not used (Go)declared and not us…E0308 — Rust: error[E0308]: mismatched types — expected `X`, found `Y` (Rust)E0308expected ';' before — C/C++: error: expected ';' before 'x' — missing semicolon (C/C++)expected ';' beforestray in program — C/C++: error: stray '\342' in program (smart quotes or invisible characters) (C/C++)stray in programformat expects argument of type — C: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long int' [-Wformat=] (C/C++)format expects argu…GLIBCXX not found — Linux: version `GLIBCXX_3.4.30' not found (required by ./app) — libstdc++.so.6 (C/C++)GLIBCXX not foundcontrol reaches end of non-void function — C/C++: warning: control reaches end of non-void function [-Wreturn-type] (C/C++)control reaches end…undefined reference to vtable — C++: undefined reference to `vtable for X' — virtual function not defined (C/C++)undefined reference…Assertion failed — C/C++: Assertion `x > 0' failed. Aborted (core dumped) — assert() condition was false (C/C++)Assertion failedMEMORY_MANAGEMENT — Blue Screen: MEMORY_MANAGEMENT (Stop code 0x0000001A) (Windows)MEMORY_MANAGEMENTSIGSEGV — Segmentation fault (core dumped) (Linux)SIGSEGVOOM killer — Killed / Out of memory: Killed process (Linux OOM killer) (Linux)OOM killerCannot allocate memory — fork: Cannot allocate memory / ENOMEM (Linux)Cannot allocate mem…0xC0000005 — The application was unable to start correctly (0xc0000005) / Exception code 0xc0000005 access violation (Windows)0xC0000005Segmentation fault — C/C++: Segmentation fault (core dumped) — SIGSEGV from a null, dangling or out-of-bounds pointer (C/C++)Segmentation fault

Directly related (9)

no match for 'operator'C/C++

C++: error: no match for 'operator<<' (operand types are 'std::ostream' and 'X')

You used an operator on a type that does not define it — most often printing your own class with `

invalid conversion fromC/C++

C++: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]

C++ forbids silently dropping `const` or converting between unrelated pointer types — typically a string literal assigned to `cha…

use of deleted functionC/C++

C++: error: use of deleted function 'X::X(const X&)' — copying a non-copyable type

The code needs a function (usually a copy constructor or assignment) that was deleted explicitly or implicitly, as for `std::uniq…

expected primary-expression beforeC/C++

C++: error: expected primary-expression before ')' token

The parser expected a value or expression and found a token that cannot start one — often a type name passed where a value belong…

call of overloaded is ambiguousC/C++

C++: error: call of overloaded 'f(int)' is ambiguous

Two or more overloads fit equally well, so the compiler refuses to guess which function you meant.

cannot declare variable to be of abstract typeC/C++

C++: error: cannot declare variable 'x' to be of abstract type 'Shape' (pure virtual functions)

You tried to create an object of a class that still has pure virtual functions; only a derived class that overrides all of them c…

template argument deduction/substitution failedC/C++

C++: error: template argument deduction/substitution failed / couldn't deduce template parameter

The compiler could not work out the template arguments from your call — the arguments disagree, the type can't be deduced, or a c…

AddressSanitizer: heap-buffer-overflowC/C++

C/C++: ==ERROR: AddressSanitizer: heap-buffer-overflow on address — READ/WRITE of size N

AddressSanitizer caught a read or write just outside a heap block — an array index or length that is off by one or more.

AddressSanitizer: heap-use-after-freeC/C++

C/C++: ==ERROR: AddressSanitizer: heap-use-after-free on address — memory used after delete/free

The program read or wrote a heap block after it had been freed; ASan shows who freed it and where it was allocated.

Two steps away (24)

discards qualifiersC/C++

C++: error: passing 'const X' as 'this' argument discards qualifiers [-fpermissive]

A const object (or const reference) is calling a method that is not declared const, which could modify it.

need typename before dependent nameC/C++

C++: error: need 'typename' before 'T::iterator' because 'T' is a dependent scope

Inside a template, a name like `T::iterator` could be a type or a value, so C++ requires the `typename` keyword to say it is a ty…

ISO C++ forbids comparison between pointer and integerC/C++

C++: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]

You compared a string literal or pointer with a character or integer — typically `ch == "y"` instead of `ch == 'y'`.

does not name a typeC/C++

C++: error: 'string' does not name a type

Where the compiler expected a type, it found a name it does not know as one — a missing header, namespace, or class declared late…

narrowing conversionC/C++

C++: error: narrowing conversion of 'x' from 'int' to 'char' inside { } [-Wnarrowing]

Brace initialisation `{}` refuses conversions that can lose data, such as `double` to `int` or a runtime `int` to `char`.

comparison of integers of different signsC/C++

C/C++: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' [-Wsign-compare]

A signed integer is compared with an unsigned one; the signed value is converted to unsigned, so a negative number becomes huge.

double free or corruptionC/C++

C/C++: free(): double free detected / double free or corruption (out) — Aborted (core dumped)

Memory was freed twice or the heap was corrupted (buffer overflow, freeing a non-heap pointer), so glibc aborted the program.

incomplete typeC/C++

C++: error: invalid use of incomplete type 'class X' — forward declaration only

You used a class that has only been forward-declared (so its size and members are unknown) where the full definition is required.

is private within this contextC/C++

C++: error: 'int X::secret' is private within this context

Code outside the class tried to use a private (or protected) member.

declared and not usedGo

Go: declared and not used: x / "fmt" imported and not used

Go refuses to compile code with unused local variables or unused imports.

E0308Rust

Rust: error[E0308]: mismatched types — expected `X`, found `Y`

A value’s type doesn’t match what the context expects — common with &str vs String, Option/Result vs plain values, and integer ty…

expected ';' beforeC/C++

C/C++: error: expected ';' before 'x' — missing semicolon

The compiler reached a token where a statement should have ended — almost always a missing semicolon on the line above.

stray in programC/C++

C/C++: error: stray '\342' in program (smart quotes or invisible characters)

The source file contains a character the compiler does not recognise, typically curly quotes or a non-breaking space pasted from…

format expects argument of typeC/C++

C: warning: format '%d' expects argument of type 'int', but argument 2 has type 'long int' [-Wformat=]

The `printf`/`scanf` format specifier does not match the argument's type, which is undefined behaviour and prints garbage or cras…

GLIBCXX not foundC/C++

Linux: version `GLIBCXX_3.4.30' not found (required by ./app) — libstdc++.so.6

The program was built with a newer GCC than the libstdc++ installed on the machine where it runs.

control reaches end of non-void functionC/C++

C/C++: warning: control reaches end of non-void function [-Wreturn-type]

A function that promises a return value can finish without returning one on some path — undefined behaviour in C++.

undefined reference to vtableC/C++

C++: undefined reference to `vtable for X' — virtual function not defined

The linker cannot find the class's virtual table, which means at least one virtual member function was declared but never defined…

Assertion failedC/C++

C/C++: Assertion `x > 0' failed. Aborted (core dumped) — assert() condition was false

An `assert()` in your code or in a library found its condition false and aborted the program on purpose.

MEMORY_MANAGEMENTWindows

Blue Screen: MEMORY_MANAGEMENT (Stop code 0x0000001A)

Windows detected a severe memory-management error — commonly faulty RAM, unstable memory settings or a bad driver.

SIGSEGVLinux

Segmentation fault (core dumped)

A program accessed memory it wasn’t allowed to, and the kernel killed it with SIGSEGV (exit code 139).

OOM killerLinux

Killed / Out of memory: Killed process (Linux OOM killer)

The kernel ran out of memory and killed a process to recover — the program just prints “Killed” (exit code 137).

Cannot allocate memoryLinux

fork: Cannot allocate memory / ENOMEM

The kernel refused a memory allocation — RAM and swap are exhausted, or overcommit/cgroup limits block it.

0xC0000005Windows

The application was unable to start correctly (0xc0000005) / Exception code 0xc0000005 access violation

A program tried to read or write memory it doesn’t own and Windows stopped it — buggy software, bad drivers/plugins, security sof…

Segmentation faultC/C++

C/C++: Segmentation fault (core dumped) — SIGSEGV from a null, dangling or out-of-bounds pointer

The program touched memory it is not allowed to access — a null or dangling pointer, an out-of-range array index, or a stack over…