- 대부분의 구성 요소는이 헤더 파일 만 제공되는 소스 코드 형태로 수출하고 있습니다.
- C 라이브러리의 대부분의 기능은 libc.so에서 제공됩니다.
그래서, 내 질문은 :libstdC++가 필요한 이유는 무엇입니까? C++ 표준 라이브러리의
왜 우리가하면 libstdc 필요합니까 ++ 그래서.? ++ 된 libstdc에 어떤 내용
. 그래서?
그래서, 내 질문은 :libstdC++가 필요한 이유는 무엇입니까? C++ 표준 라이브러리의
왜 우리가하면 libstdc 필요합니까 ++ 그래서.? ++ 된 libstdc에 어떤 내용
. 그래서?
라이브러리에는 많은 심볼이 정의되어 있습니다. 특히 언어 지원 및 표준 라이브러리 예외 클래스는 대부분 라이브러리에 정의되어 있습니다.
라이브러리 따라서, 템플릿이며 ++ 표준 C, 구성 요소의 많은 인라인 정의를하더라도, 그들은 명시 적으로 인스턴스화되는 혜택을한다. IOStreams 라이브러리를 명시 적으로 인스턴스화하면 (그리고 extern
템플릿으로 선언하면) 컴파일 시간이 크게 향상됩니다.
nm
에 정의되어있는 것을 파악하려면이 라이브러리에 의해 정의 및 참조 기호를 인쇄합니다. 결과는 적절한
c++filt
에 파이프하여 수정 될 수 있습니다.
아니요 때문에 외부 템플릿을 사용하지 않았습니까? 그게 무슨 뜻인지 알아낼 수 있을까요? –
@ShacharShemesh : * exported * 템플릿은 * 제공되지 않았으며 대부분 구현자가 구현하려고하지 않았기 때문에 주로 제공되었지만 주로 * 삭제되었습니다. 'extern' 템플릿에 대해 문제가 있거나 이해하기 어려운 것이 없습니다. extern 템플릿은 선언 된 인스턴스화에 대해 암시 적 인스턴스화를 수행하지 않아도된다는 것을 단순히 선언합니다. 대신, 적절한 명시 적 인스턴스화가 제공됩니다. –
는 자신에 대한 참조 : https://github.com/gcc-mirror/gcc/tree/master/libstdc%2B%2B-v3/src – Brian
첫 번째 문장은 완전히 잘못된 것입니다. 귀하의 질문은 거짓 전제 (premiss)에 근거합니다. 심지어 그것이 사실 일지라도 '소스 형식으로 내 보낸'것이 아닌 하나의 기호가 있다는 사실은 충분한 설명이므로 질문도 * 비 연속에 의존합니다. * – EJP