cpp / intermediate
Snippet
Eingrenzung des Variablen-Scopes in Bedingungen
C++17 führte bedingte Anweisungen mit Initialisierungen ein. Dies ermöglicht es, eine Variable innerhalb des Scopes der if-Anweisung zu initialisieren, was den Namensraum sauber hält und die versehentliche Wiederverwendung von Iterator-Variablen verhindert.
snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>#include <vector>int main() {std::vector<int> nums = {1, 2, 3};if (auto it = nums.begin(); it != nums.end()) {std::cout << "First element: " << *it << std::endl;}// 'it' is not accessible herereturn 0;}
Erklärung
1
if (auto it = nums.begin(); it != nums.end())
Initialisiert 'it' und prüft die Bedingung in einer Zeile; 'it' ist nur innerhalb des if/else-Blocks gültig.