3
으로 CPP Doc 당 std::greater
이 <functional>
헤더에 정의되어 있지만 std::greater
를 사용하여 내 C++ 프로그램은 TDM-GCC-64 5.1.0로 컴파일 만 다음에 실행이 포함C++ 프로그램 컴파일이
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <unordered_map>
<algorithm>
이 자동으로 <functional>
을 포함하고 있기 때문일 수 있습니다. 그러나 이것은 문서에 언급되어 있지 않기 때문에이 문제를 사전에 알 수있는 방법이 있는지 궁금합니다.
아니요 구현 세부 정보가 구현 정보이므로 알 수있는 방법이 없습니다. C++ 표준을 따르고 휴대하기를 원할 경우 필요한 함수와 클래스에 필요한 헤더 파일을 항상 포함시켜야합니다. –
이 구현에 의존하지 않을 것으로 예상했다. 나는 머리말의 정의가 표준이 될 것이라는 인상하에 있었고 수입에 있어서도 암묵적인 계층 구조가 존재할 것이라는 인상을 받았다. –
iostream은 평범한 것입니다. 많은 헤더를 혼자서 저어냅니다. 구현 세부 사항을 알 수 있습니다. 헤더를 살펴보십시오. 위험은 소스 파일이 다른 컴파일러에서 컴파일되지 않는다는 것입니다. 아니 물론, 쉽게 해결할 수 있습니다. –