태그: inline
4편
-
C++ 헤더 온리 라이브러리 만들기: inline·템플릿·constexpr과 ODR, multiple definition 피하기
구현을 헤더에 두면서도 multiple definition 링커 에러 없이 배포하려면 inline, 템플릿, constexpr가 ODR과 어떻게 맞물리는지 알아야 합니다. extern template로 인스턴스화를 줄이는 법과 컴파일 시간, ABI 관점의 비용도 짚습니다.
-
C++ multiple definition 링커 에러: 헤더 정의 중복의 원인과 해결
헤더에 함수나 전역 변수를 정의했다가 링크 단계에서 multiple definition 에러가 날 때, ODR 규칙으로 원인을 짚고 inline·static·extern 중 무엇으로 고칠지 비교표와 헤더/소스 분리 예제로 판단할 수 있게 합니다.
-
C static 심화 가이드 — 번역 단위·정적 초기화·TLS·inline·실무 패턴
static 지역·전역·함수를 넘어 번역 단위와 링커 심볼, 정적 초기화 순서, _Thread_local(TLS), static/extern inline 연결 규칙, 프로덕션 모듈 경계 패턴까지 정리한 C 저장 기간 심화 글입니다.
-
C++ inline의 진짜 의미: 인라인 확장이 아니라 ODR 예외, inline 변수와 constexpr
inline은 호출을 펼치라는 명령이 아니라 헤더에 정의를 두어도 링크 에러가 나지 않게 하는 ODR 예외입니다. 실제 인라인 확장은 컴파일러가 결정한다는 점, 큰 함수와 재귀·가상 함수의 한계, C++17 inline 변수와 constexpr의 관계를 예제로 봅니다.