Logo

dev-resources.site

for different kinds of informations.

Bug of the week #2

Published at
1/7/2025
Categories
cpp
compiling
pikotutorial
Author
pikoTutorial
Categories
3 categories in total
cpp
open
compiling
open
pikotutorial
open
Bug of the week #2

Welcome to the next pikoTutorial !

The error we're handling today is a C++ compilation error:

ISO C++ forbids declaration with no type

What does it mean?

In C++, variables must be declared with a type to inform the compiler about the kind of data the variable will hold. A declaration without a type leaves the compiler clueless, resulting in a syntax error. Consider the following code snippet:

variable = 10;

This line triggers the error because variable is not declared with a type. The compiler doesn't know whether variable is an integer, a float or any other data type.

How to fix it?

Simply add a type in your variable declaration:

int variable = 10;

You can omit type when using auto keyword:

auto variable = 10;

Now the compiler will deduce the type of the variable you've just initialized (in this case, 10 will be interpreted as an int). Remember, however, that to make type deduction possible, the variable declaration must be combined with a variable initialization. The following usage of auto is invalid and will trigger a compiler error anyway because there is no value for the compiler to determine the type of variable:

auto variable;

Note for beginners: be careful when using auto for complex types because some results may be surprising. For example, by saying auto v = {1, 2, 3} you may want to create a vector, but this is actually as std::initializer_list.

Featured ones: