std:: fpos
|
헤더 파일에 정의됨
<ios>
|
||
|
template
<
class
State
>
class fpos ; |
||
클래스 템플릿
std::fpos
의 특수화는 스트림이나 파일 내의 절대적 위치를 식별합니다.
fpos
타입의 각 객체는 스트림 내의 바이트 위치(일반적으로
std::streamoff
타입의 비공개 멤버로 저장됨)와 현재의 시프트 상태,
State
타입의 값(일반적으로
std::mbstate_t
)을 보유합니다.
다음의 typedef 이름들이 std :: fpos < std:: mbstate_t > 에 대해 제공됩니다 (표준에서는 다르게 표기되어 있으나, 동일한 타입을 나타냅니다):
|
헤더에 정의됨
<iosfwd>
|
|
| 타입 | 정의 |
std::streampos
|
std :: fpos < std:: char_traits < char > :: state_type > |
std::wstreampos
|
std :: fpos < std:: char_traits < wchar_t > :: state_type > |
std::u8streampos
(C++20)
|
std :: fpos < std:: char_traits < char8_t > :: state_type > |
std::u16streampos
(C++11)
|
std :: fpos < std:: char_traits < char16_t > :: state_type > |
std::u32streampos
(C++11)
|
std :: fpos < std:: char_traits < char32_t > :: state_type > |
fpos
의 모든 특수화는
DefaultConstructible
,
CopyConstructible
,
CopyAssignable
,
Destructible
, 그리고
EqualityComparable
요구 사항을 충족합니다.
만약
State
가 trivial 복사 생성 가능하다면,
fpos
는 trivial 복사 생성자를 가집니다.
만약
State
가 trivial 복사 할당 가능하다면,
fpos
는 trivial 복사 할당 연산자를 가집니다.
만약
State
가 trivial 소멸 가능하다면,
fpos
는 trivial 소멸자를 가집니다.
목차 |
템플릿 매개변수
| State | - | 시프트 상태를 나타내는 타입 |
| 타입 요구사항 | ||
-
State
는 다음 요구사항들을 충족해야 함:
Destructible
,
CopyAssignable
,
CopyConstructible
및
DefaultConstructible
.
|
||
멤버 함수
|
시프트 상태 값을 가져오기/설정하기
(public member function) |
또한 다음 연산들을 지원하기 위해 멤버 및 비멤버 함수가 제공됩니다:
- 오프셋을 0으로 저장하고 상태 객체를 값 초기화하는 기본 생성자.
-
(가능하면 const)
std::streamoff
타입의 인수를 받는 non-explicit 생성자로, 해당 오프셋을 저장하고 상태 객체를 값 초기화합니다. 이 생성자는 또한 특수 값
std::
streamoff
(
-
1
)
도 받아야 합니다: 이 방식으로 생성된
std::fpos는 일부 스트림 연산에서 오류를 나타내기 위해 반환됩니다.
-
(const일 수 있는)
fpos에서 std::streamoff 로의 명시적 변환. 결과는 저장된 오프셋입니다.
-
operator
==
와
operator
!
=
는 (const 가능성이 있는)
std::fpos타입의 두 객체를 비교하여 bool prvalue를 반환합니다. p ! = q 는 ! ( p == q ) 와 동등합니다.
-
operator
+
와
operator
-
는 (const 가능성이 있는)
fpos<State>타입의 객체 p 와 (const 가능성이 있는) std::streamoff 타입의 객체 o 에 대해 다음과 같이 정의됨
-
-
p
+
o
는
fpos<State>타입을 가지며, p 의 오프셋에 o 를 더한 결과인 오프셋을 저장합니다. -
o
+
p
는
fpos<State>로 변환 가능한 타입을 가지며, 변환 결과는 p + o 와 동일합니다. -
p
-
o
는
fpos<State>타입을 가지며, p 의 오프셋에서 o 를 뺀 결과인 오프셋을 저장합니다.
-
p
+
o
는
- operator + = 및 operator - = 는 (const일 수 있는) std::streamoff 를 받아들이고 저장된 오프셋에 각각 더하거나/빼는 연산자입니다.
-
operator
-
는 (const 가능한)
std::fpos타입의 두 객체를 뺄 수 있으며, 그 결과로 std::streamoff 를 생성합니다. 이는 두 객체 p 와 q 에 대해 p == q + ( p - q ) 가 성립하도록 합니다.
참고 사항
일부
I/O 스트림 멤버 함수
는 멤버 typedef
pos_type
의 객체를 반환하고 조작합니다. 스트림의 경우 이러한 멤버 typedef는 템플릿 매개변수
Traits
에 의해 제공되며, 이는 기본적으로
std::char_traits
로 설정되어 있으며, 여기서는
pos_type
을
std::fpos
의 특수화로 정의합니다. I/O 스트림 라이브러리의 동작은
Traits::pos_type
이
std
::
fpos
<
std::
mbstate_t
>
(즉
std::streampos
,
std::wstreampos
등)가 아닐 경우 구현에 따라 정의됩니다.
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 수정된 동작 |
|---|---|---|---|
| LWG 57 | C++98 |
streampos
와
wstreampos
가 모순적으로
다를 수 있으면서 동일해야 한다고 요구됨 |
동일하게
명확히 규정 |
| P0759R1 | C++98 | 명세가 불명확하고 불완전했음 | 정리됨 |
| P1148R0 | C++11 |
u16streampos
와
u32streampos
정의가
무엇이며 어느 헤더에 있는지 불명확했음 |
명확히 규정 |
|
LWG 2114
( P2167R3 ) |
C++98 | 동등 비교의 non- bool 반환 타입이 허용됨 | 허용되지 않음 |
참고 항목
|
상대적 파일/스트림 위치(fpos로부터의 오프셋)를 나타내며, 모든 파일 크기를 표현하기에 충분함
(typedef) |
|
|
출력 위치 표시자를 반환함
(
std::basic_ostream<CharT,Traits>
의 public member function)
|
|
|
출력 위치 표시자를 설정함
(
std::basic_ostream<CharT,Traits>
의 public member function)
|
|
|
파일 위치 표시자를 얻음
(function) |