본문 바로가기

분류 전체보기105

[C++ Core Guidelines] P.1, P.3 생각을 코드로 직접 나타내자 P.1: Express ideas directly in code P.3: Express intent 이유 컴파일러는 여러분이 쓴 주석을 전혀 읽지 않으며, 세상에 게으른 프로그래머들이 많기에 여러분이 쓴 주석에는 그다지 주의를 기울이지 않을 수 있습니다. 그럼 어떻게 해야할까요? 문법적으로 여러분의 의도를 코드로 명확히 표현해야 합니다 (주석 뿐만 아니라 코드 구조상) 예시 (나쁜 예) class Date { public: int month(); // 이렇게 쓰지 마세요 // ... }; 위 코드에서 멤버 함수의 선언 int month(); 만 보면 리턴 값이 달(month) 을 나타내는 상수 함수인지 명확히 알 수 없습니다. 게으른 프로그래머들과 컴파일러는 멤버 함수의 선언 int month(); 만 .. 2024. 3. 27.
[C++ Core Guidelines] 번역에 앞서 개요 C++ 는 매우 자유롭고 복잡한 언어입니다. 역사 또한 매우 오래되어 지금까지 상당히 많은 문법이 개정되었으며, 시대의 흐름에 따라 권장되는 사용 용법 (do's) 와 권장되지 않는 사용 용법(don'ts)이 혼용되고 있습니다. C++ Core Guidelines 에서, C++ 의 창시자이자 기여자인 Bjarne Stroustrup 와 Herb Sutter 를 중심으로 작성된 이 문서는 현대 C++ 의 표준 권장 사용 가이드를 제시합니다. 물론 이 문서에 나와있는 내용이 항상 정답이고 반드시 따라야 하는 내용은 아닙니다. 다만 특정 방식으로 현대적 문법을 사용해야 할 합리적 이유와 코딩 철학들이 담겨있어 훌륭한 참고 자료가 될 것입니다. 현대적인 C++ 코드를 처음 작성하시려는 분들, 고전 C++ .. 2024. 3. 26.
[C++] 학습시 참고 할만한 사이트 정리 레퍼런스Standard C++https://isocpp.org/C++ 의 표준을 관리하는 기관인 ISO 에서 직접 운영하는 사이트, 최신 문법에 대한 뉴스, C++ 컨퍼런스 및 레퍼런스 문서들을 볼 수 있습니다. C++ Referencehttps://en.cppreference.com/백과사전처럼 필요한 문법의 형태와 예시를 찾는데 적합합니다. CPlusPlus.comhttps://cplusplus.com/위 cppreference.com 보다 예시가 더 단순하며 초보자에게 보다 친숙합니다. More C++ Idiomshttps://en.wikibooks.org/wiki/More_C%2B%2B_Idioms자주 사용되는 관용적 표현이지만 (특히 템플릿 관련) 초보자가 처음 보기엔 어렵게 느껴질 수 있는 용.. 2024. 3. 21.
[Zig] 슬라이스(slices) 슬라이스를 사용하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- 배열 이름 [ 시작 인덱스 .. 끝 + 1 인덱스 ] 시작 인덱스 또는 끝 + 1 인덱스 는 생략 가능하며, 생략시 최대 범위로 적용됩니다. --------------------------------------------------------------------------------------------------- 예시 // 길이가 10 인 digits 배열을 만들었습니다. var digits = [10] u8 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // 아래와.. 2024. 3. 21.
[Zig] 값(values) 메모리를 가지는 모든 것들은 값으로 표현됩니다. --------------------------------------------------------------------------------------------------- @import() : 외부 라이브러리를 메모리(RAM)에 넣어 구조체 변수 값으로 만듭니다. const 구조체 변수 이름 = @import( "외부 라이브러리 이름" ); --------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------.. 2024. 3. 21.
[Zig] 메소드(methods) 메소드를 정의하는 방법은 다음 같습니다. --------------------------------------------------------------------------------------------------- 구조체 정의 헤더 (참고) { pub 또는 생략 fn 메소드 이름 ( 입력 인자들... ) 반환형 { // 함수 호출시 실행될 내용 return 또는 생략 반환 값 ; } }; 메소드는 구조체 안에 들어있는 함수를 지칭합니다. 메소드를 사용하고 싶다면 구조체 이름 . 메소드 이름 ( ) 처럼 호출하여 사용할 수 있습니다. ----------------------------------------------------------------------------------------------.. 2024. 3. 21.