헤더 라이브러리 (예 : Boost)를 작성할 때 (1) 생성 된 바이너리를 확장하지 않고 (2) 발생하지 않고 자유 플로팅 "사용하지 않은"경고?헤더 라이브러리에서 (비 메소드) 함수를 정의하는 방법
동일한 바이너리로 차례로 링크 된 여러 소스 파일에 포함 된 헤더에 함수를 정의하면 링커가 재정의에 대해 불평합니다. 이 문제를 해결하는 한 가지 방법은 함수를 정적으로 만드는 것입니다.하지만이 방법은 각 번역 단위에서 코드를 재생산합니다 (BTW, 링커는이 코드를 안전하게 복제 할 수 있습니까?). 또한, 사용되지 않는 함수에 대한 컴파일러 경고를 트리거합니다.
부스트에서 부동 함수의 예를 찾으려고했으나 찾을 수 없습니다. 클래스 (또는 템플릿)의 모든 것을 포함하는 트릭이 있습니까?
왜 그런 식으로하고 싶습니까? – AnT
* BTW는 링커가 안전하게 이들을 복제 할 수 있습니다 * - 아마 인라인으로 더 좋은 기회를 가질 수 있습니다. – peterchen
구현 단계에서이 문제를 해결할 수있는 구현 관련 기능이 있습니다. MS 구현에서는'__declspec (selectany)', GCC에서는'__attribute __ ((weak))'와 비슷합니다. – AnT