Namespaces
Variants

C++ named requirements: CharTraits

From ko.cppreference.net
< cpp โ€Ž | named req
C++ named requirements

CharTraits ๋Š” ์ฃผ์–ด์ง„ ๋ฌธ์ž ํƒ€์ž…์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ž ๋ฐ ๋ฌธ์ž์—ด ์—ฐ์‚ฐ์„ ์ถ”์ƒํ™”ํ•˜๋Š” traits ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฌธ์ž์—ด ๋ฐ ์ž…์ถœ๋ ฅ ํด๋ž˜์Šค๋“ค์€ ํ•ด๋‹น ๋ฌธ์ž ํ…œํ”Œ๋ฆฟ ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ํ•จ๊ป˜ CharTraits ํ…œํ”Œ๋ฆฟ ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

์š”๊ตฌ์‚ฌํ•ญ

์•„๋ž˜์— ๋‚˜์—ด๋œ CharTraits ์—ฐ์‚ฐ ์ค‘ ์–ด๋–ค ๊ฒƒ๋„ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œ์ผœ์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

์ฃผ์–ด์ง„

  • CharT , ๋ฌธ์ž ํƒ€์ž…
  • X , CharT ํƒ€์ž…์— ๋Œ€ํ•œ CharTraits ํƒ€์ž…
  • c , d , CharT ํƒ€์ž…์˜ ๊ฐ’๋“ค
  • p , q , const CharT * ํƒ€์ž…์˜ ๊ฐ’๋“ค
  • s , CharT* ํƒ€์ž…์˜ ๊ฐ’
  • n , i , j , std::size_t ํƒ€์ž…์˜ ๊ฐ’๋“ค
  • e , f , X::int_type ํƒ€์ž…์˜ ๊ฐ’๋“ค
  • pos , X::pos_type ํƒ€์ž…์˜ ๊ฐ’
  • state , X::state_type ํƒ€์ž…์˜ ๊ฐ’
  • r , CharT ํƒ€์ž…์˜ lvalue

ํƒ€์ž…

ํƒ€์ž… ์˜๋ฏธ
X::char_type CharT
X::int_type X::char_type ์˜ ๋ชจ๋“  ์œ ํšจํ•œ ๊ฐ’๊ณผ X :: eof ( ) ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…
X::off_type X ๊ฐ€ ์ž…์ถœ๋ ฅ ํด๋ž˜์Šค์˜ traits ํ…œํ”Œ๋ฆฟ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ๋  ๋•Œ std::streamoff ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ๊ตฌํ˜„ ์ •์˜ ๋™์ž‘์„ ์œ ๋ฐœํ•จ
X::pos_type
  • ์ž…์ถœ๋ ฅ ํด๋ž˜์Šค์—์„œ ์ด ํƒ€์ž…์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋“ค์€ ์˜ค๋ฅ˜ ์‹ ํ˜ธ๋ฅผ ์œ„ํ•ด X :: pos_type ( X :: off_type ( - 1 ) ) ๋ฅผ ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•จ
  • ์ด ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฐ’์„ std::istream , std::ostream ๋˜๋Š” std::streambuf ์˜ ์ด ํƒ€์ž… ๊ฐ’์„ ์ทจํ•˜๋Š” ์–ด๋–ค ๋ฉค๋ฒ„ ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ •์˜๋˜์ง€ ์•Š์€ ํ–‰์œ„์ž„
  • X ๊ฐ€ ์ž…์ถœ๋ ฅ ํด๋ž˜์Šค์˜ traits ํ…œํ”Œ๋ฆฟ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ๋  ๋•Œ ์ด ํƒ€์ž…์ด std::streampos ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ๊ตฌํ˜„ ์ •์˜ ๋™์ž‘์„ ์œ ๋ฐœํ•จ
X::state_type Destructible , CopyAssignable , CopyConstructible , DefaultConstructible

ํ‘œํ˜„์‹

ํ‘œํ˜„์‹ ๋ฐ˜ํ™˜ ํƒ€์ž… ์˜๋ฏธ๋ก  ๋ณต์žก๋„
X :: eq ( c, d ) bool ๋ฐ˜ํ™˜๊ฐ’: c ๊ฐ€ d ์™€ ๋™๋“ฑํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€ ์ƒ์ˆ˜
X :: lt ( c, d ) bool ๋ฐ˜ํ™˜๊ฐ’: c ๊ฐ€ d ๋ณด๋‹ค ์ž‘์€ ๊ฒƒ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋Š”์ง€ ์—ฌ๋ถ€ ์ƒ์ˆ˜ ์‹œ๊ฐ„
X :: compare ( p, q, n ) int ๋ฐ˜ํ™˜๊ฐ’:
  • โ€‹ 0 โ€‹ - [ โ€‹ 0 โ€‹ , n ) ๋ฒ”์œ„์˜ ๋ชจ๋“  i ์— ๋Œ€ํ•ด X :: eq ( p [ i ] , q [ i ] ) ๊ฐ€ true ์ธ ๊ฒฝ์šฐ
  • ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด, ์Œ์ˆ˜ ๊ฐ’ - ๋‹ค์Œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ:
    • [ โ€‹ 0 โ€‹ , n ) ๋ฒ”์œ„์˜ ์–ด๋–ค j ์— ๋Œ€ํ•ด X :: lt ( p [ j ] , q [ j ] ) ๊ฐ€ true ์ด๊ณ 
    • [ โ€‹ 0 โ€‹ , j ) ๋ฒ”์œ„์˜ ๋ชจ๋“  i ์— ๋Œ€ํ•ด X :: eq ( p [ i ] , q [ i ] ) ๊ฐ€ true ์ธ ๊ฒฝ์šฐ
  • ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ ์–‘์ˆ˜ ๊ฐ’
์„ ํ˜• ์‹œ๊ฐ„
X :: length ( p ) std::size_t ๋ฐ˜ํ™˜๊ฐ’: X :: eq ( p [ i ] , CharT ( ) ) ๊ฐ€ true ์ธ ๊ฐ€์žฅ ์ž‘์€ i ์„ ํ˜• ์‹œ๊ฐ„
X :: find ( p, n, c ) const X :: char_type * ๋ฐ˜ํ™˜๊ฐ’:
  • [ p , p + n ) ๋ฒ”์œ„ ๋‚ด์—์„œ X :: eq ( * q, c ) ๊ฐ€ true ์ธ ๊ฐ€์žฅ ์ž‘์€ q
  • ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด โ€‹ 0 โ€‹
์„ ํ˜• ์‹œ๊ฐ„
X :: move ( s, p, n ) X::char_type*
  • [ โ€‹ 0 โ€‹ , n ) ๋ฒ”์œ„์˜ ๊ฐ i ์— ๋Œ€ํ•ด X :: assign ( s [ i ] , p [ i ] ) ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค
  • [ p , p + n ) ์™€ [ s , s + n ) ๋ฒ”์œ„๊ฐ€ ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ์—๋„ ์ •ํ™•ํ•˜๊ฒŒ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค
  • ๋ฐ˜ํ™˜๊ฐ’: s
์„ ํ˜•(Linear)
X :: copy ( s, p, n ) X::char_type*
  • ์š”๊ตฌ์‚ฌํ•ญ: [ p , p + n ) ์™€ [ s , s + n ) ๊ฐ€ ๊ฒน์น˜์ง€ ์•Š์•„์•ผ ํ•จ
  • ๋ฐ˜ํ™˜๊ฐ’: s
  • [ โ€‹ 0 โ€‹ , n ) ๋ฒ”์œ„ ๋‚ด์˜ ๊ฐ i ์— ๋Œ€ํ•ด X :: assign ( s [ i ] , p [ i ] ) ์ˆ˜ํ–‰
์„ ํ˜•
X :: assign ( r, d ) (์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ) r = d ๋ฅผ ํ• ๋‹นํ•จ ์ƒ์ˆ˜
X :: assign ( s, n, c ) X::char_type*
  • [ โ€‹ 0 โ€‹ , n ) ๋ฒ”์œ„์˜ ๊ฐ i ์— ๋Œ€ํ•ด X :: assign ( s [ i ] , c ) ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ˜ํ™˜๊ฐ’: s
์„ ํ˜•(Linear)
X :: not_eof ( e ) X::int_type ๋ฐ˜ํ™˜๊ฐ’:
  • e ๋งŒ์•ฝ X :: eq_int_type ( e, X :: eof ( ) ) ๊ฐ€ false ์ธ ๊ฒฝ์šฐ
  • ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด X :: eq_int_type ( f, X :: eof ( ) ) ๊ฐ€ false ์ธ ๊ฐ’ f
์ƒ์ˆ˜
X :: to_char_type ( e ) X::char_type ๋ฐ˜ํ™˜๊ฐ’:
  • ๋งŒ์•ฝ ์–ด๋–ค c ์— ๋Œ€ํ•ด X :: eq_int_type ( e, X :: to_int_type ( c ) ) ๊ฐ€ true ์ธ ๊ฒฝ์šฐ, c
  • ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ •์˜๋˜์ง€ ์•Š์€ ๊ฐ’
์ƒ์ˆ˜
X :: to_int_type ( c ) X::int_type ๋ฐ˜ํ™˜๊ฐ’: e , X::to_char_type ์™€ X::eq_int_type ์˜ ์ •์˜์— ์˜ํ•ด ์ œ์•ฝ๋˜๋Š” ์–ด๋–ค ๊ฐ’ ์ƒ์ˆ˜
X :: eq_int_type ( e, f ) bool
  • ๋ชจ๋“  c ์™€ d ์— ๋Œ€ํ•ด, X :: eq ( c, d ) ๋Š” X :: eq_int_type ( X :: to_int_type ( c ) ,
    X :: to_int_type ( d ) )
    ์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค
  • ๋ฐ˜ํ™˜๊ฐ’:
    • ์ผ๋ถ€ c ์™€ d ์— ๋Œ€ํ•ด e == X :: to_int_type ( c ) ์ด๊ณ  f == X :: to_int_type ( d ) ์ธ ๊ฒฝ์šฐ X :: eq ( c, d ) ๋ฅผ ๋ฐ˜ํ™˜
    • ๊ทธ๋ ‡์ง€ ์•Š๊ณ  e ์™€ f ๊ฐ€ ๋ชจ๋‘ X :: eof ( ) ์˜ ๋ณต์‚ฌ๋ณธ์ธ ๊ฒฝ์šฐ true ๋ฅผ ๋ฐ˜ํ™˜
    • ๊ทธ๋ ‡์ง€ ์•Š๊ณ  e ์™€ f ์ค‘ ํ•˜๋‚˜๊ฐ€ X :: eof ( ) ์˜ ๋ณต์‚ฌ๋ณธ์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ false ๋ฅผ ๋ฐ˜ํ™˜
    • ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ ๊ฐ’์€ ๋ช…์‹œ๋˜์ง€ ์•Š์Œ
์ƒ์ˆ˜ ์‹œ๊ฐ„
X :: eof ( ) X::int_type ๋ฐ˜ํ™˜๊ฐ’: ๋ชจ๋“  ๊ฐ’ c ์— ๋Œ€ํ•ด X :: eq_int_type ( e, X :: to_int_type ( c ) ) ๊ฐ€ false ์ธ ๊ฐ’ e ์ƒ์ˆ˜

ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

CharTraits ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ์—์„œ ํ…œํ”Œ๋ฆฟ ํƒ€์ž… ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค:

๋ฌธ์ž์—ด
๋ฌธ์ž ์‹œํ€€์Šค๋ฅผ ์ €์žฅํ•˜๊ณ  ์กฐ์ž‘ํ•จ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
์ฝ๊ธฐ ์ „์šฉ ๋ฌธ์ž์—ด ๋ทฐ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
์ŠคํŠธ๋ฆผ
์ž„์˜์˜ ์ŠคํŠธ๋ฆผ ๋ฒ„ํผ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
์ฃผ์–ด์ง„ ์ถ”์ƒ ์žฅ์น˜( std::basic_streambuf )๋ฅผ ๊ฐ์‹ธ๊ณ 
๊ณ ์ˆ˜์ค€ ์ž…๋ ฅ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•จ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
๊ณ ์ˆ˜์ค€ ํŒŒ์ผ ์ŠคํŠธ๋ฆผ ์ž…๋ ฅ ์—ฐ์‚ฐ์„ ๊ตฌํ˜„ํ•จ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
๊ณ ์ˆ˜์ค€ ๋ฌธ์ž์—ด ์ŠคํŠธ๋ฆผ ์ž…๋ ฅ ์—ฐ์‚ฐ์„ ๊ตฌํ˜„ํ•จ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
๊ณ ์ • ๋ฌธ์ž ๋ฒ„ํผ ์ž…๋ ฅ ์—ฐ์‚ฐ์„ ๊ตฌํ˜„ํ•จ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
์ฃผ์–ด์ง„ ์ถ”์ƒ ์žฅ์น˜( std::basic_streambuf )๋ฅผ ๊ฐ์‹ธ๊ณ 
๊ณ ์ˆ˜์ค€ ์ถœ๋ ฅ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
๊ณ ์ˆ˜์ค€ ํŒŒ์ผ ์ŠคํŠธ๋ฆผ ์ถœ๋ ฅ ์—ฐ์‚ฐ์„ ๊ตฌํ˜„ํ•จ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
๊ณ ์ˆ˜์ค€ ๋ฌธ์ž์—ด ์ŠคํŠธ๋ฆผ ์ถœ๋ ฅ ์—ฐ์‚ฐ์„ ๊ตฌํ˜„ํ•จ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
๋™๊ธฐํ™”๋œ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ๋ž˜ํผ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
๊ณ ์ •๋œ ๋ฌธ์ž ๋ฒ„ํผ ์ถœ๋ ฅ ์—ฐ์‚ฐ์„ ๊ตฌํ˜„ํ•จ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
์ฃผ์–ด์ง„ ์ถ”์ƒ ์žฅ์น˜( std::basic_streambuf )๋ฅผ ๋ž˜ํ•‘ํ•˜๊ณ 
๊ณ ์ˆ˜์ค€ ์ž…์ถœ๋ ฅ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•จ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
๊ณ ์ˆ˜์ค€ ํŒŒ์ผ ์ŠคํŠธ๋ฆผ ์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ์„ ๊ตฌํ˜„ํ•จ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
๊ณ ์ˆ˜์ค€ ๋ฌธ์ž์—ด ์ŠคํŠธ๋ฆผ ์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ์„ ๊ตฌํ˜„ํ•จ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
๊ณ ์ •๋œ ๋ฌธ์ž ๋ฒ„ํผ ์ž…๋ ฅ/์ถœ๋ ฅ ์—ฐ์‚ฐ์„ ๊ตฌํ˜„ํ•จ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
์ŠคํŠธ๋ฆผ ๋ฐ˜๋ณต์ž
std::basic_istream ์—์„œ ์ฝ์–ด๋“ค์ด๋Š” ์ž…๋ ฅ ๋ฐ˜๋ณต์ž
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
std::basic_ostream์— ์“ฐ๊ธฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” std::basic_ostream ์ถœ๋ ฅ ๋ฐ˜๋ณต์ž
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
์ŠคํŠธ๋ฆผ ๋ฒ„ํผ
์›์‹œ ์žฅ์น˜๋ฅผ ์ถ”์ƒํ™”ํ•จ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
์›์‹œ ํŒŒ์ผ ์žฅ์น˜ ๊ตฌํ˜„
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
์›์‹œ ๋ฌธ์ž์—ด ์žฅ์น˜๋ฅผ ๊ตฌํ˜„ํ•จ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
๋™๊ธฐํ™”๋œ ์ถœ๋ ฅ ์žฅ์น˜ ๋ž˜ํผ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
์›์‹œ ๊ณ ์ • ๋ฌธ์ž ๋ฒ„ํผ ์žฅ์น˜๋ฅผ ๊ตฌํ˜„ํ•จ
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
์ŠคํŠธ๋ฆผ ๋ฒ„ํผ ๋ฐ˜๋ณต์ž
std::basic_streambuf ์—์„œ ์ฝ์–ด๋“ค์ด๋Š” ์ž…๋ ฅ ๋ฐ˜๋ณต์ž
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)
std::basic_streambuf ์— ๊ธฐ๋กํ•˜๋Š” ์ถœ๋ ฅ ๋ฐ˜๋ณต์ž
(ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ)


CharTraits ๋Š” ๋‹ค์Œ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ช…์‹œ์  ํŠน์ˆ˜ํ™”์— ์˜ํ•ด ์ถฉ์กฑ๋ฉ๋‹ˆ๋‹ค: std::char_traits :

template <> class char_traits < char > ;

template <> class char_traits < wchar_t > ;
template <> class char_traits < char8_t > ;
template <> class char_traits < char16_t > ;

template <> class char_traits < char32_t > ;


(C++20๋ถ€ํ„ฐ)
(C++11๋ถ€ํ„ฐ)
(C++11๋ถ€ํ„ฐ)

๊ฒฐํ•จ ๋ณด๊ณ ์„œ

๋‹ค์Œ์˜ ๋™์ž‘ ๋ณ€๊ฒฝ ๊ฒฐํ•จ ๋ณด๊ณ ์„œ๋“ค์€ ์ด์ „์— ๋ฐœํ‘œ๋œ C++ ํ‘œ์ค€์— ์†Œ๊ธ‰ ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

DR ์ ์šฉ ๋Œ€์ƒ ๊ฒŒ์‹œ๋œ ๋™์ž‘ ์ˆ˜์ •๋œ ๋™์ž‘
LWG 335 C++98 assign ์˜ ์ดํ•ญ ์˜ค๋ฒ„๋กœ๋“œ์— ๋Œ€ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์ด
rvalue์— ๋Œ€ํ•œ ํ• ๋‹น์„ ๋ฐฉ์ง€ํ•˜์ง€ ์•Š์Œ
์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋Š”
lvalue๋งŒ ๊ฐ€๋Šฅํ•จ
LWG 352 C++98 X::state_type ์ด
CopyConstructible ๋งŒ ์š”๊ตฌ๋จ
CopyAssignable ๊ณผ
DefaultConstructible ๋„ ์š”๊ตฌ๋จ
LWG 3085 C++98 X :: copy ( s, p, n ) ๊ฐ€ p ๊ฐ€
[ s , s + n ) ์— ์—†์Œ์„ ์š”๊ตฌ๋งŒ ํ•จ (๋„ˆ๋ฌด ์•ฝํ•จ) [1]
[ p , p + n ) ๊ณผ
[ s , s + n ) ์ด ๊ฒน์น˜์ง€ ์•Š์•„์•ผ ํ•จ์„ ์š”๊ตฌ
  1. โ†‘ [ p , p + n ) ์™€ [ s , s + n ) ๊ฐ€ ๊ฒน์น  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ, std::memcpy ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ X::copy ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ์ด ๊ฒฝ์šฐ ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.