cplusplus: 실전적 클래스 설계와 구현

  • 홈
  • 태그
  • 방명록

constexpr 1

Zero-cost 추상화: C++17 if constexpr을 활용한 lock guard

요약TPSMeter에서 락 사용 여부를 런타임 bool로 판단하던 걸 → Non-type template parameter로 바꿔서 컴파일 타임에 결정되게 함if constexpr로 분기해서 런타임 오버헤드를 완전히 제거근데 중복 코드가 생기니까 → constexpr_lock_guard를 11줄로 만들어서 중복 제거std::monostate + RVO + 타입 추론 활용한 제로 코스트공수와 오용(misuse)을 줄이고 가독성을 높이면서도 기존 방식 대비 약 5.1배의 성능향상 시작C++17에 도입된 if constexpr은 기존의 const 보다 더 나은 퍼포먼스를 제공합니다. constexpr은 컴파일 타임에 평가를 보장합니다. 따라서 constexpr로 사용된 if문으로 분기되는 런타임 오버헤드를 없..

카테고리 없음 2026.03.19
이전
1
다음
더보기

공지사항

  • 이 블로그는 왜 시작되었을까요?
  • 분류 전체보기 (26)

최근글과 인기글

  • 최근글
  • 인기글

Tag

lock_guard, zero-cost, rcu, std::optional, recvmmsg, spinlockguard, cpp, C++17, 제로코스트추상화, shared_ptr, is_same_v, lockfree, C++, crpt, Atomic, sftp client, Modern, 제로, template, blockingqueue,

Archives

  • C++ Core Guidelines
  • C++ Core Guidelines 한국어

티스토리툴바