코딩 모닥불
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기
      • C++
      • 표준 라이브러리
      • 백준(BOJ)
  • 홈
  • 태그
  • 방명록
C++

[C++] 표현식의 구체적인 타입을 알려주는 decltype

decltype 키워드decltype는 이름이나 표현식의 구체적인 타입( declared type )을 알려주는 키워드입니다.이 키워드는 다음과 같은 규칙에 따라, 표현식의 타입을 반환합니다. ● 표현식이 식별자 또는 클래스 멤버를 가리키는 경우, decltype은 이 식별자 또는 클래스 멤버의 타입을 반환합니다.struct Point{ int x = 0; int y = 0;};int main(){ int x = 10; decltype( x ) var = x; // decltype( x )는 int const Point pt{ 3, 4 }; decltype( pt.x ) var2 = 3; // decltype( pt.x )는 int ..

2025. 3. 5.
C++

[C++] 객체를 변경할 수 없는 const 멤버 함수

const 멤버 함수C++에서는 기본 타입에 const 키워드를 붙여 값을 변경할 수 없는 변수를 정의할 수 있습니다.그리고, 이러한 변수는 값을 변경할 수 없으므로, 정의할 때 반드시 초기화 과정을 거쳐야 합니다.int variable; // okconst int const_variable; // error ! 초기화 필요const double PI{ 3.1415 }; // okstatic_assert( std::is_same_v == false ); // ok참고로, std::is_same_v의 값은 두 개의 템플릿 매개변수의 타입이 같으면 true입니다.그리고, 위에서 볼 수 있듯이, const int와 int는 다른 타입입니다. 이와 마찬가지로, 클래스 타입( struct, class, union..

2025. 2. 17.
C++

[C++] 컴파일 시 가정의 진위를 검사하는 static_assert

실행 시 가정의 참/거짓을 검사하는 assert다음은 두 실수를 전달받아서 나눈 결과를 반환하는 함수입니다.double divide( double numerator, double denominator){ if ( denominator != 0){ return numerator / denominator; } else{ return 0; // denominator가 0이 될 때 }}우선, 이 함수는 의도한 대로 제대로 동작합니다.하지만, 이것을 작성한 프로그래머는 ( 그전에 조치를 취해두었기 때문에 ) 나눗셈의 분모인 denominator는 절대 0이 될 수 없다고 생각할 수도 있습니다.그래서, 만일 denominator가 0이 된다면, 어떤 경우에 이런 상황이..

2025. 1. 28.
  • «
  • 1
  • »

전체 카테고리

  • 분류 전체보기
    • C++
    • 표준 라이브러리
    • 백준(BOJ)

블로그 인기글

태그

  • #std::unique_ptr
  • #소멸자
  • #헤더 가드
  • #decltype
  • #constexpr
  • #std::string_view
  • #깊이 우선 탐색
  • #복사 생성자
  • #Lamda
  • #동적 계획법
  • #const
  • #전처리기
  • #포인터
  • #이진 탐색
  • #static_cast
  • #초기화
  • #auto
  • #Enum
  • #std::stack
  • #using
  • #함수 객체
  • #namespace
  • #std::sort
  • #범위 기반 for
  • #std::queue
  • #inline
  • #예외 처리
  • #상수 표현식
  • #std::vector
  • #전방 선언
MORE
애드센스 광고 영역
Powered by Privatenote Copyright © 코딩 모닥불 All rights reserved. TistoryWhaleSkin3.4

티스토리툴바