Skip to content

Commit 5d3ce0b

Browse files
committed
1
1 parent ae5e0bc commit 5d3ce0b

File tree

8 files changed

+239
-0
lines changed

8 files changed

+239
-0
lines changed

web/mainmenu.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ class MainMenu {
3535

3636
this._Menu.addDataItem("/윈도우즈 프로그래밍", "../page-WinUI3/page.html");
3737
this._Menu.addDataItem("/윈도우즈 프로그래밍/WinUI3", "../page-WinUI3/page.html");
38+
39+
this._Menu.addDataItem("/C++/문서", "../page-cpp-doc/page.html");
3840
}
3941

4042
initializeMenu() {

web/page-cpp-doc/page.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
@charset "utf-8";
2+
3+

web/page-cpp-doc/page.html

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
5+
<meta charset="utf-8" />
6+
<title>code1009</title>
7+
<link rel="stylesheet" type="text/css" href="../core.css" />
8+
<link rel="stylesheet" type="text/css" href="../menu.css" />
9+
<link rel="stylesheet" type="text/css" href="./page.css" />
10+
<script type="text/javascript" src="../core.js"></script>
11+
<script type="text/javascript" src="../menu.js"></script>
12+
<script type="text/javascript" src="../mainmenu.js"></script>
13+
<script type="text/javascript" src="../markdown.js"></script>
14+
<script type="text/javascript" src="./submenu.js"></script>
15+
<script type="text/javascript" src="./page.js"></script>
16+
17+
</head>
18+
<body>
19+
20+
<div id="page-container">
21+
22+
<div id="page-information"></div>
23+
24+
<div id="page-resizer"></div>
25+
26+
<div id="page-contents">
27+
<div id="subMenu" class="menu"></div>
28+
<br />
29+
<div id="page-markdown-view">
30+
</div>
31+
</div>
32+
33+
</div>
34+
35+
<script>
36+
function getMarkDownFileURL() {
37+
const params = new URLSearchParams(window.location.search);
38+
const page = params.get("page");
39+
return page ? `./${page}.md` : "./page1.md";
40+
}
41+
42+
function initializeMarkdwonView() {
43+
const view = document.getElementById("page-markdown-view");
44+
if (!view) {
45+
return;
46+
}
47+
48+
const markdownFileURL = getMarkDownFileURL();
49+
50+
loadMarkDownScript(
51+
function () {
52+
renderMarkdwon("page-markdown-view", markdownFileURL);
53+
}
54+
);
55+
}
56+
57+
initializeMarkdwonView();
58+
</script>
59+
</body>
60+
</html>

web/page-cpp-doc/page.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/////////////////////////////////////////////////////////////////////////////
2+
//===========================================================================
3+
"use strict";
4+
5+
6+
7+
8+
9+
/////////////////////////////////////////////////////////////////////////////
10+
//===========================================================================
11+
class Page {
12+
13+
#Context = null;
14+
15+
constructor() {
16+
this.#Context = null;
17+
}
18+
}
19+
20+
21+
22+
23+
24+
/////////////////////////////////////////////////////////////////////////////
25+
//===========================================================================
26+
var _Page = null;
27+
28+
29+
30+
31+
32+
/////////////////////////////////////////////////////////////////////////////
33+
//===========================================================================
34+
function initializePage() {
35+
_Page = new Page();
36+
}
37+
38+
39+
40+
41+
42+
/////////////////////////////////////////////////////////////////////////////
43+
//===========================================================================
44+
window.onload = function () {
45+
initializeCore();
46+
initializePage();
47+
48+
initializePageInformation();
49+
initializeMainMenu();
50+
51+
initializeSubMenu();
52+
}
53+
54+

web/page-cpp-doc/page1.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# C++ 문서
2+
3+
4+
## 링크
5+
6+
### C++ Core Guidelines
7+
8+
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#nl5-use-a-_t-suffix-only-for-types-defined-by-the-c-standard-library
9+
10+
11+
12+
### C++ Reference
13+
14+
https://cppreference.com/
15+
16+

web/page-cpp-doc/page2-goto.png

59 KB
Loading

web/page-cpp-doc/page2.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# C++ 문서
2+
3+
4+
## 코딩 가이드 라인
5+
6+
### _t 로 끝나는 타입
7+
8+
- C 스타일 typedef에서 _t 접미사를 많이 썼지만, C++ 표준에서는 권장하지 않음.
9+
10+
- 공식 문서(C++ Core Guidelines)
11+
12+
> NL.5: Avoid encoding type information in names
13+
14+
- **NL.5: 이름에 타입 정보를 인코딩하지 마라.**
15+
16+
* 이름에 타입 정보(_t, _ptr 등) 넣지 말 것. 의미와 역할이 드러나는 이름을 쓸 것.
17+
18+
19+
20+
### goto 문
21+
22+
- goto는 특별한 경우(**중첩 루프 탈출 등**) 외엔 사용하지 않는 게 좋음.
23+
- 흐름 추적, 유지보수, 디버깅이 어려워짐.
24+
- 대부분 함수, 루프, 조건문, 예외 처리(try-cathe, throw)로 대체 가능.
25+
- C 스타일 예외 처리(goto-exit idiom)가 필요할 때만 사용.
26+
- C++에서 try-catch을 통한 예외처리를 사용하지 않을 때는, goto문을 사용해도 됨.
27+
28+
- 공식 문서(C++ Core Guidelines)
29+
30+
> ES.76: Avoid goto
31+
32+
- **ES.76: goto를 사용하지 마라.**
33+
- goto 사용 피할 것.
34+
35+
![goto](./page2-goto.png)
36+
37+
38+
39+
40+
41+
42+
43+
44+
45+
46+

web/page-cpp-doc/submenu.js

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/////////////////////////////////////////////////////////////////////////////
2+
//===========================================================================
3+
"use strict";
4+
5+
6+
7+
8+
9+
/////////////////////////////////////////////////////////////////////////////
10+
//===========================================================================
11+
class SubMenu {
12+
13+
_Menu = new Menu();
14+
15+
constructor() {
16+
this.registerMenuDataItem();
17+
this.initializeMenu();
18+
}
19+
20+
registerMenuDataItem() {
21+
this._Menu.addDataItem("/링크" , "./page.html?page=page1");
22+
this._Menu.addDataItem("/코딩 가이드 라인", "./page.html?page=page2");
23+
24+
this._Menu.getRootItem().setExpanded(true);
25+
this._Menu.makeTreeItems();
26+
this._Menu.render("subMenu");
27+
}
28+
29+
initializeMenu() {
30+
this._Menu.makeTreeItems();
31+
32+
this._Menu.getRootItem().setExpanded(true);
33+
34+
for (let child of this._Menu.getRootItem().getChildren()) {
35+
child.setExpanded(true);
36+
}
37+
38+
this._Menu.render("subMenu");
39+
}
40+
}
41+
42+
43+
44+
45+
46+
/////////////////////////////////////////////////////////////////////////////
47+
//===========================================================================
48+
var _SubMenu = null;
49+
50+
51+
52+
53+
54+
/////////////////////////////////////////////////////////////////////////////
55+
//===========================================================================
56+
function initializeSubMenu() {
57+
_SubMenu = new SubMenu();
58+
}

0 commit comments

Comments
 (0)