TIL: auto

๋ฐ•์ถ˜ํŒ”ยท4์ผ ์ „

CPP TIL

๋ชฉ๋ก ๋ณด๊ธฐ
4/7

๐Ÿ“… 2026-04-04
์ฃผ๋ง์—๋„ ์กฐ๊ธˆ์”ฉ์€ ๊ณต๋ถ€ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

auto

C++

์ž๋ฃŒํ˜• ๊ธฐ์ž…ํ•˜๋Š” ๋ถ€๋ถ„์— ๋“ค์–ด๊ฐ€๋Š” auto๋Š”
์ปดํŒŒ์ผ ์‹œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ํƒ€์ž…์„ ์ถ”๋ก ํ•ด์ฃผ๋Š” ํ‚ค์›Œ๋“œ๋‹ค.

auto x = 10;
auto y = 3.14;

// ์ปดํŒŒ์ผ ์‹œ ์•„๋ž˜๋กœ ๋ฐ”๋€œ
int x = 10;
double y = 3.14;

๋‚˜์ฒ˜๋Ÿผ JS,TS๋ฅผ ํ•ด๋ดค๊ฑฐ๋‚˜ ์›น ์ชฝ์„ ๊ณต๋ถ€ํ•ด๋ดค๋‹ค๋ฉด ๋ญ”๊ฐ€ ๋А๋‚Œ์ด ์ด์ƒํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์„๊ฑด๋ฐ

auto๋Š” ๋™์ ํƒ€์ž…์ด ์•„๋‹ˆ๋ผ
์ปดํŒŒ์ผ ํƒ€์ž„์— ํƒ€์ž…์ด ๊ฒฐ์ •๋˜๋Š” ๊ฒƒ์ด๋‹ค.

๋˜ํ•œ auto๋ฅผ ์“ฐ๋Š” ์ด์œ ๋Š” ์ฝ”๋“œ ๊ฐ„๊ฒฐํ™” ๋•Œ๋ฌธ๋„ ์žˆ๋‹ค.
ํŠนํžˆ ํƒ€์ž…์ด ๋ณต์žกํ•œ iterator๋‚˜ template์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

std::vector<int>::iterator() it = v.begin();

vs

auto it = v.begin();

๋˜ํ•œ auto๋Š” TS์˜ any์™€ ๊ฐ™์€ ์•„๋ฌด๊ฑฐ๋‚˜๊ฐ€ ์•„๋‹ˆ๋‹ค.
์ดˆ๊ธฐ ๊ฐ’์ด ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผํ•˜๋ฉฐ ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค. (ํ˜• ๋ณ€ํ™˜์€ ๊ฐ€๋Šฅ)

auto x; // ์ปดํŒŒ์ผ ์—๋Ÿฌ

auto x = 10;

x = 3.14; // ์ด๋ฏธ int๋กœ ์ •ํ•ด์ ธ์„œ ์—๋Ÿฌ



---


int x = 10;
auto& xRef = x; // xRef๋Š” x์˜ ๊ฐ’ ์ฐธ์กฐ

auto a = x; // ๋ณต์‚ฌ
auto& b = x; // ์ฐธ์กฐ

Unreal

auto* Character = Cast<ACharacter>(Actor);

// lambda๋Š” ํƒ€์ž…์ด ์—†๋‹ค. ๊ทธ๋ž˜์„œ auto ์‚ฌ์šฉ
auto Lambda = []() {
    UE_LOG(LogTemp, Warning, TEXT("Hi"));
};

์“ฐ๋ฉด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ

ํƒ€์ž…์ด ์ค‘์š”ํ•œ ๊ฒฝ์šฐ

auto damage = GetDamage();

ํƒ€์ž…์ด int์ธ์ง€ float์ธ์ง€ ๋ชจ๋ฅด๋ฉด ์œ„ํ—˜ํ•˜๋‹ค.

๊ฐ€๋…์„ฑ ๋–จ์–ด์งˆ ๋•Œ

profile
์ด๊ฒƒ ์ €๊ฒƒ ๋‹คํ•ด๋ณด๋Š” ์‚ถ

0๊ฐœ์˜ ๋Œ“๊ธ€