#pragma once

void Overload0() {}

int Overload1() { return 1; }
int Overload1(int) { return 2; }

int Overload(int, int) { return 1; }
int Overload(int, float) { return 2; }
int Overload(float, int) { return 3; }

int DefaultParamsOverload() { return 0; }
int DefaultParamsOverload(int a, int b) { return 2; }
int DefaultParamsOverload(int a, float b = 2) { return 3; }

int DefaultParamsOverload2(int a = 0, int b = 0, int c = 0) { return 1; }