Welcome to the next pikoTutorial!
The error we’re handling today is a C++ compilation error:
ISO C++ forbids declaration with no typeWhat 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 interpreted asstd::initializer_list.
Read also:
- 10 VS Code snippets essential for every C++ engineer
- Storing your ATTiny program in…EEPROM?
- Bug of the week #12
- Sharing variable between bash scripts
- A 40-line LLM-based bash command executor in Python
- GTest and short-circuit evaluation in C++
- AI is powerful. Snippets are instant.
- From AUTOSAR to S-Core: the first C++ pub/sub implementation
- How to write Arduino Uno code with Python?
- Combining Bazel with Docker
- Running commands with timeout on Linux
- Running Python unit tests with CMake
- Thirdparty dependencies with FetchContent
- Bug of the week #11
- Combining CMake with Docker
- How to search the internet from Linux terminal?
- Folding expressions in C++
- How to derive from an enum in Python?
- Bug of the week #10
- Trying ROS2: client/server within a single container
- Make C++ a better place #4: Go as an alternative
- How to convert hex to dec in Linux terminal?
- Setting up a Python project with CMake
- Separating builds for different configs with Bazel
- Trying ROS2: pub/sub within a single container
- Bug of the week #9
- UDP multicasting with Python
- Destruction order vs thread safety in C++
- Let’s review some code: C++ #2
- Make C++ a better place #3: D as an alternative
- Registering callback using std::function in C++
- Bug of the week #8
- TCP client/server with Python
- Simple menus in Bash scripts with select
- Calling member function on a nullptr in C++
- Bug of the week #7
- Python lru_cache explained
- How to dockerize a Python application?
- Make C++ a better place #2: CppFront as an alternative
- Parameters combinations in GoogleTest
- Data transfer with curl
- Python reduce explained
- Bug of the week #6
- Custom literals in C++
- Linux and hash command
- 5 Python good practices which make life easier
- Let’s review some code: Python #1
- Make C++ a better place #1: What does better mean
- Enums vs enum class in C++
- Bug of the week #5
- UDP client/server with Python
- Hard links in Linux
- Functions calling order in unit tests in C++
- Bug of the week #4
- Yield in Python – state machines, coroutines and more
- Copy files from another branch with Git
- Make C++ a better place #0: Introduction
- 5 misconceptions about std::move in C++
- How to use xargs on Linux?
- How to test method call order with unittest in Python?









