게시물이 존재할 경우 아래에 최신순 4건이 배열됩니다
-
C++에 정의한 entity란?
모든 entity를 declaration할 수 있는 것은 아니지만, declaration할 수 있는 모든 프로그램 구성요소는 entity다. 따라서 다음처럼 정의할 수 있다.C++ 프로그램이 다루는 모든 요소를 entity이고, 일부를 제외한 대부분의 enity는 선언의 대상이 될 수 있다. 선언되는 Entity vs 선언되지 않는 Entity// 1. 선언되는 entityint x; // x(객체)는 선언됨void foo(); // foo(함수)는 선언됨// 2. 선언되지 않는 entity - 값(value)int result = 42; // result는 선언됨, 하지만 42(값)는 선언되지 않음 // 42는 리터럴 값이며 ..
더보기
-
C++ Declaration의 5가지 효과
Declaration의 5가지 효과✓ Static Assertion → 컴파일 타임 검증⚙️ Template Control → 템플릿 제어 🎯 Deduction Guide → 타입 추론 도움🏷️ Attributes → 컴파일러 힌트∅ Empty Declaration → 효과 없음Static Assertion// ✓ Static Assertion - 컴파일 타임 검증static_assert(sizeof(int) == 4, "int must be 4 bytes");static_assert(std::is_integral_v, "T must be integral");// 조건이 false면 → 컴파일 에러!Template Instantiation ..
더보기
-
C++의 Declaration에 대한 해석(interpretation) 명시 vs 의미적 속성(semantic properties)
1. 해석 명시 - "이것이 무엇인가?"int x; // x는 "변수"void func(); // func는 "함수"class MyClass; // MyClass는 "타입(클래스)"namespace NS; // NS는 "네임스페이스"typedef int ID; // ID는 "타입 별칭"→ 이름이 어떤 종류의 개체를 가리키는지 결정2. 의미적 속성 명시 - "어떤 특성을 가지는가?"int x; // 타입: int, 저장소: 자동const int y = 5; // 타입: int, 속성: 상수, 초기값: 5static double z; // 타입: double, 저장소: 정적extern int w; //..
더보기
-
C++의 underlying entity과 module 관계
C++20 모듈과 관련하여 underlying entity 개념이 특히 중요해졌습니다.Module의 Entity 문제모듈은 전통적인 헤더 기반 시스템과 다른 방식으로 entity를 다룹니다:1. Entity의 도달 가능성 (Reachability)// math.cppmexport module math;export int add(int a, int b) { return a + b;}// main.cppimport math;// add의 underlying entity에 접근 가능헤더 방식에서는 textual inclusion이었지만, 모듈에서는 semantic entity reference입니다.2. 같은 Entity의 다중 선언// module1.cppmexport module module1;exp..
더보기