void (C++)

When used as a function return type, the void keyword specifies that the function doesn't return a value. When used for a function's parameter list, void specifies that the function takes no parameters. When used in the declaration of a pointer, void specifies that the pointer is "universal."

If a pointer's type is void*, the pointer can point to any variable that's not declared with the const or volatile keyword. A void* pointer can't be dereferenced unless it's cast to another type. A void* pointer can be converted into any other type of data pointer.

In C++, a void pointer can point to a free function (a function that's not a member of a class), or to a static member function, but not to a non-static member function.

You can't declare a variable of type void.

As a matter of style, the C++ Core Guidelines recommend you don't use void to specify an empty formal parameter list. For more information, see C++ Core Guidelines NL.25: Don't use void as an argument type.

Example

// void.cpp

void return_nothing()
{
   // A void function can have a return with no argument,
   // or no return statement.
}

void vobject;   // C2182
void *pv;   // okay
int *pint; int i;
int main()
{
   pv = &i;
   // Cast is optional in C, required in C++
   pint = (int *)pv;
}

See also

Keywords
Built-in types