Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

1#include <vector>
2#include <iostream>
3
4void printVector(std::vector<int> vec) {
5 for (int num : vec) {
6 std::cout << num << " ";
7 }
8 std::cout << "\n";
9}
10
11int main() {
12 std::vector<int> numbers = {1, 2, 3, 4, 5};
13 printVector(numbers);
14 return 0;
15}
16

After

1#include <vector>
2#include <iostream>
3
4void printVector(const std::vector<int>& vec) {
5 for (int num : vec) {
6 std::cout << num << " ";
7 }
8 std::cout << "\n";
9}
10
11int main() {
12 const std::vector<int> numbers = {1, 2, 3, 4, 5};
13 printVector(numbers);
14 return 0;
15}
16

Before

translation_unit
preproc_include
#include "#include"
system_lib_string "<vector>"
preproc_include
#include "#include"
system_lib_string "<iostream>"
function_definition
primitive_type "void"
function_declarator
identifier "printVector"
parameter_list
( "("
parameter_declaration
qualified_identifier
namespace_identifier "std"
:: "::"
template_type
type_identifier "vector"
template_argument_list
< "<"
type_descriptor
primitive_type "int"
> ">"
identifier "vec"
) ")"
compound_statement (+41 nodes collapsed)
function_definition
primitive_type "int"
function_declarator
identifier "main"
parameter_list
( "("
) ")"
compound_statement
{ "{"
declaration
qualified_identifier
namespace_identifier "std"
:: "::"
template_type
type_identifier "vector"
template_argument_list
< "<"
type_descriptor
primitive_type "int"
> ">"
init_declarator
identifier "numbers"
= "="
initializer_list
{ "{"
number_literal "1"
, ","
number_literal "2"
, ","
number_literal "3"
, ","
number_literal "4"
, ","
number_literal "5"
} "}"
; ";"
expression_statement
call_expression
identifier "printVector"
argument_list
( "("
identifier "numbers"
) ")"
; ";"
return_statement
return "return"
number_literal "0"
; ";"
} "}"

After

translation_unit
preproc_include
#include "#include"
system_lib_string "<vector>"
preproc_include
#include "#include"
system_lib_string "<iostream>"
function_definition
primitive_type "void"
function_declarator
identifier "printVector"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
qualified_identifier
namespace_identifier "std"
:: "::"
template_type
type_identifier "vector"
template_argument_list
< "<"
type_descriptor
primitive_type "int"
> ">"
reference_declarator
& "&"
identifier "vec"
) ")"
compound_statement (+41 nodes collapsed)
function_definition
primitive_type "int"
function_declarator
identifier "main"
parameter_list
( "("
) ")"
compound_statement
{ "{"
declaration
type_qualifier
const "const"
qualified_identifier
namespace_identifier "std"
:: "::"
template_type
type_identifier "vector"
template_argument_list
< "<"
type_descriptor
primitive_type "int"
> ">"
init_declarator
identifier "numbers"
= "="
initializer_list
{ "{"
number_literal "1"
, ","
number_literal "2"
, ","
number_literal "3"
, ","
number_literal "4"
, ","
number_literal "5"
} "}"
; ";"
expression_statement
call_expression
identifier "printVector"
argument_list
( "("
identifier "numbers"
) ")"
; ";"
return_statement
return "return"
number_literal "0"
; ";"
} "}"