본문 바로가기

카테고리 없음

노트

이후 도움도 안된 GPT는 버려지고 그의 피드백만 수정되어 혼자 수정을 시작한는데...

### ✅ O/X table

<span style="background-color:mistyrose;"> 실체 없음 </span>
<span style="background-color:honeydew;"> 실체 있음 </span>
<span style="background-color:aliceblue;"> 특수 조건 : `constexpr 아닐 때` </span>
<span style="background-color:powderblue;"> 특수조건 : constexpr 일때 </span>

| 요소 | DLib 포함 제공 (`.dll/.so`) | StaticLib 포함 제공 (`.lib/.a`) | Module 포함 제공 (`.ifc/.cppm`) | Header 포함 제공 (`.h`) |
| --- | --- | --- | --- | --- |
| <div style="background-color:mistyrose;"> **enum** </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ✅ </div> | <div style="background-color:mistyrose;"> ✅ </div> |
| <div style="background-color:mistyrose;"> **enum class** </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ✅ </div> | <div style="background-color:mistyrose;"> ✅ </div> |
| <div style="background-color:honeydew;"> **class** </div> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:honeydew;"> ❌ </div> |
| <div style="background-color:honeydew;"> **struct** </div> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:honeydew;"> ❌ </div> |
| <div style="background-color:honeydew;"> **union** <div style="background-color:powderblue;"> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:honeydew;"> ❌ </div> |
| <div style="background-color:mistyrose;"> **namespace** </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ✅ </div> | <div style="background-color:mistyrose;"> ✅ </div> |
| <div style="background-color:mistyrose;"> **typedef** </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ✅ </div> | <div style="background-color:mistyrose;"> ✅ </div> |
| <div style="background-color:honeydew;"> **전역 변수 (`.data/.bss` 포함)** </div> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:honeydew;"> ❌ </div> |
| <div style="background-color:honeydew;"> **const** </div> | <div style="background-color:aliceblue;"> ✅ </div> | <div style="background-color:aliceblue;"> ✅ </div> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:powderblue;"> ✅ </div> |
| <div style="background-color:mistyrose;"> **constexpr** </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ✅ </div> | <div style="background-color:mistyrose;"> ✅ </div> |
| <div style="background-color:mistyrose;"> **inline 함수** </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ✅ </div> | <div style="background-color:mistyrose;"> ✅ </div> |
| <div style="background-color:honeydew;"> **일반 함수* *</div> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:honeydew;"> ✅ </div> | <div style="background-color:honeydew;"> ❌ </div> |
| <div style="background-color:mistyrose;"> **virtual 함수 포함** </div> | <div style="background-color:mistyrose;"> ✅ </div> | <div style="background-color:mistyrose;"> ✅ </div> | <div style="background-color:mistyrose;"> ✅ </div> | <div style="background-color:mistyrose;"> ❌ </div> |
| <div style="background-color:mistyrose;"> **friend 포함 멤버** </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ❌ </div> |
| <div style="background-color:mistyrose;"> **using** </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ✅ </div> | <div style="background-color:mistyrose;"> ✅ </div> |
| <div style="background-color:mistyrose;"> **concept** (C++20) </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ✅ </div> | <div style="background-color:mistyrose;"> ✅ </div> |
| <div style="background-color:mistyrose;"> **macro (`#define`)** </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ❌ </div> | <div style="background-color:mistyrose;"> ✅ </div> |

##### 제공 가능 여부 기준은 뭔가?
- lib류 (dlib/slib) : 실행파일에 실체있는 바이너리 리소스로 재공 가능한가?  
- module : 컴파일시 필요한 리소스 모두 제공
   - 전처리단계인 macro는 자명히 제공 불가
   - 자세한 내용은 하단 참고  
- header : 걍 처박음
   - 자세한 내용은 하단 참고

### 🛠 참고자료

(검색중)