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

[C++] 자동으로 변수의 타입을 완성하는 auto 키워드

변수의 타입 추론( type deduction )C++ 에는 모든 값에 해당하는 타입이 있습니다.int main(){ 5; // int 3.14; // double 5L; // long 5.0f; // float ?? variable{ 5 }; // variable의 타입 ??}예를 들어, 위의 3.14는 double 타입을 갖고, 5.0f는 float 타입을 갖고 있습니다.그렇기 때문에, 프로그래머가 명시하지 않더라도, 컴파일러는 이를 이용해서 변수의 타입 예상할 수 있습니다. 이렇게, 컴파일러가 변수의 값으로부터 변수의 타입을 예상하는 것을 타입 추론( type deduction )이라고 하며, 이 추론의 결과를 이용하기 위해 auto 키워드를 사..

2025. 2. 24.
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++] 항상 컴파일 시에 평가되어야 하는 consteval 함수

std::is_constant_evaluated와 if constevalC++ 에는 constexpr 변수를 초기화할 때 같이 상수 표현식이 필요한 상황이 있습니다.이러한 상황을 constant evaluated context ( 혹은 constant context )라고 합니다.constexpr int size{ 3 + 5 }; // constant context constexpr 함수는 이러한 상수 문맥( constant evaluated context ) 뿐 아니라, 그렇지 않은 상황에도 모두 사용할 수 있는 함수입니다. [C++] 상수 표현식에 사용될 수 있는 constexpr 함수constexpr 함수다음은 특별한 사용자 공식에 의하여 원소 개수를 구하고, 이를 사용하여 배열을 정의하는 예문입니..

2025. 2. 15.
C++

[C++] 상수 표현식에 사용될 수 있는 constexpr 함수

constexpr 함수다음은 특별한 사용자 공식에 의하여 원소 개수를 구하고, 이를 사용하여 배열을 정의하는 예문입니다.#include int main(){ constexpr int row{ 3 }; constexpr int col{ 4 }; constexpr int size{ ( row + 3 ) * ( col + 2 ) }; // 상수 표현식 std::array two_dim_arr{};}그런데, 이 배열을 정의하기 위해선, 원소의 개수를 나타내는 size가 상수 표현식( const expression ) 즉, 컴파일 시에 값을 평가할 수 있는 표현식이어야 합니다. 그래서, 예문에서는 이 size를 constexpr 변수로 정의하였습니다. [C++] 컴파일 시에 값..

2025. 2. 13.
C++

[C++] 컴파일 시에 값을 알 수 있는 constexpr 변수

constexpr 변수이전 글에서, 상수 표현식( const expression )은 컴파일 시에 평가할 수 있는 표현식을 말한다고 얘기했었습니다. [C++] 컴파일 시 값을 알 수 있는 상수 표현식( const expression )컴파일 시, 값을 알 수 있는 표현식( expression )표현식이란 리터럴( literal ), 변수( variable ), 연산자( operator ) 그리고 함수 호출( function call )의 연속된 식이라고 할 수 있습니다.#include int func( int a, incodingbonfire.tistory.com그리고, 이 상수 표현식을 사용할수록, 컴파일러는 프로그래머가 작성한 코드를 최적화 확률이 높아집니다.그렇기 때문에, 가능하다면 일반 표현식보다..

2025. 2. 11.
C++

[C++] 컴파일 시 평가할 수 있는 constexpr 클래스 객체와 멤버 함수

constexpr 집합체( aggregate )집합체( aggregate )란 여러 개의 데이터 멤버를 가질 수 있는 타입( type )을 말합니다. [C++] 구조체( struct )와 같은 집합체( aggregate )의 초기화집합체( aggregate )의 초기화집합체( aggregate )란 여러 개의 데이터 멤버를 갖고 있는 타입( type )을 말합니다. 다음은 이러한 집합체 해당하는 struct 타입의 예입니다.struct Date{ // 집합체 int year; int mcodingbonfire.tistory.com그리고, 이전 글에선 집합체로서의 struct 타입에 관해 얘기했었습니다.struct Point{ int m_x; int m_y; constexpr int add..

2025. 2. 8.
C++

[C++] 사용자 정의 타입 enum을 입/출력 하기

enum 타입의 값을 문자열로 출력하기enum 타입의 열거자( enumerator )들은 사실 이름을 가진 정수형( integral ) 상수입니다. [C++] 몇 가지 값만 가질 수 있는 타입: unscoped enum두 가지 값만 가질 수 있는 타입 boolbool 타입은 C++의 기본적인 타입( fundamental type )의 하나입니다.이 타입은 키워드로 정해진 두 값 true와 false만을 가질 수 있는데, 이 상징적인 상수 true는 사실codingbonfire.tistory.comenum Stoplight { red, // 0 yellow, // 1 green, // 2 };그래서, std::cout를 통해 이 열거자를 출력해 보면..

2025. 2. 4.
C++

[C++] 컴파일 시 값을 알 수 있는 상수 표현식( const expression )

컴파일 시, 값을 알 수 있는 표현식( expression )표현식이란 리터럴( literal ), 변수( variable ), 연산자( operator ) 그리고 함수 호출( function call )의 연속된 식이라고 할 수 있습니다.#include int func( int a, int b){ return a + b; // a + b는 표현식}int main(){ int a{ 5 }; // 리터럴 int b{ a }; // 변수 int c{ a + 3 }; // 연산자와 변수, 리터럴의 조합 int d{ func( b, 5) }; // 함수 int e{ }; // 표현식이 없음 std::cout 그리고, 일반적으로 컴파일러는 컴파일 시, 이러한..

2025. 1. 24.
C++

[C++] 클래스의 모든 객체에 공유되는 정적( static ) 멤버 변수

정적 멤버 변수( static member variable )static는 이 키워드가 사용되는 문맥에 따라, 다양한 해석이 필요한 키워드( keyword )입니다. 만약, 이 키워드가 전역 변수( global variable )와 함께 사용되면, 이 전역 변수가 정의된 파일 내에서만 공유되는( 내부 링크를 가지므로 ) 전역 변수를 의미하게 되며, 함수 안의 지역 변수( local variable )와 함께 사용되면, 그 함수 호출 시에만 공유되는 전역 변수를 정의하게 됩니다. [C++] 전역 변수( global variable )의 종류와 링크( linkage )의 개념전역 변수의 종류C++에서 지역 변수( local variable )는 함수 내부에 정의된 변수를 말합니다.이에 대응하는, 함수 외부에..

2025. 1. 8.
C++

[C++] 진정한 의미의 전역 상수와 inline 변수

전역 상수로서의 const, constexpr 변수파일 내의 모든 곳에서 특정 값( 예를 들어, 원주율을 나타내는 3.1415 )을 사용하고 싶다면, 일반적으로 다음과 같은 코드를 작성할 것입니다.// main.cpp#include const double PI = 3.1415; // 원주율int main(){ double dRadius = 10.0; std::cout ▼출력circumference: 62.83 그리고, 이 전역 상수( global constant ) PI를 프로그램 내의 모든 파일에서 사용하고 싶다면, 다음과 같이 헤더 파일을 이용할 것입니다.// variables.h -------------------------------------const double PI = 3.14..

2025. 1. 6.
  • «
  • 1
  • 2
  • »

전체 카테고리

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

블로그 인기글

태그

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

티스토리툴바