cpp_specialization - 8BitsCoding/RobotMentor GitHub Wiki

cpp_specialization

์‚ฌ์‹ค ๊ทธ๋ฆฌ ๋งŽ์ด ์“ฐ์ด์ง€๋Š” ์•Š๋Š”๋‹ค. ์•Œ์•„๋‘๋Š” ์ •๋„?

  • ํŠน์ •ํ•œ ํ…œํ”Œ๋ฆฟ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›๋„๋ก ํ…œํ”Œ๋ฆฟ ์ฝ”๋“œ๋ฅผ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆํ•  ์ˆ˜ ์žˆ์Œ
template <class T, class Allocator>
class std::vector<T, Allocator> {} // ๋ชจ๋“  ํ˜•์„ ๋ฐ›๋Š” ์ œ๋„ค๋ฆญ vector

template <class Allocator>
class std::vector<bool, Allocator> {} // bool ํ˜•์„ ๋ฐ›๋Š” ํŠน์ˆ˜ํ™” vector
// boolํ˜•์ด ๋“ค์–ด์˜ค๋ฉด ์—ฌ๊ธฐ๋กœ ๋“ค์–ด๊ฐ€๋ผ!
  • std::vector<bool> ํŠน์ˆ˜ํ™”๋Š” ๊ฐ€์น˜๊ฐ€ ์ข€ ์žˆ์Œ
    • ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ชผ๋“ค๋ฆฌ๋Š” ํ”Œ๋žซํผ์ด๋ผ๋ฉด?

  • ์ „์ฒด ํ…œํ”Œ๋ฆฟ ํŠน์ˆ˜ํ™”
template<typename VAL, typename EXP>
VAL Power(const VAL value, EXP exponent) {} // ๋ชจ๋“ ํ˜•์„ ๋ฐ›์Œ

template<>
float Power(flaot value, float exp)         // float์„ ๋ฐ›๋„๋ก ํŠน์ˆ˜ํ™”
  • ๋ถ€๋ถ„ ํ…œํ”Œ๋ฆฟ ํŠน์ˆ˜ํ™”
template<class Allocator>
class std::vector<bool, Allocator>
โš ๏ธ **GitHub.com Fallback** โš ๏ธ