반응형

전체 글 119

C++17 주요 기능 정리 (1) - 유용한 기능 편

이 글의 모든 예제 코드는 C++17 이상에서만 동작합니다. (GCC 7-8, MSVC 19.14) Nested namespace definition 중첩 네임스페이스 정의 만약 여러분이 outer라는 네임스페이스를 만들고 그 안에 inner라는 네임스페이스를 만든다면 namespace outer { namespace inner { // 어쩌구 저쩌구 } } 일반적으로 이렇게 작성하시겠죠, 하지만 이렇게 두줄이나 낭비할 필요가 있을까요? outer 네임스페이스는 inner 네임스페이스를 제외하면 '빈공간' 입니다. 굳이 중괄호를 두번씩 쓸 필요가 없겠죠. C++17에는 Nested namespace definition이 있습니다. namespace outer::inner { // 어쩌구 저쩌구 } 훨씬 ..

C++ 2020.03.21

[C++11] std::array vs. C-array

예...늦은 감이 없지 않아 있습니다만, C++11에서 새로 추가된 컨테이너, std::array에 대해서 포스팅 해보려고 합니다. 기존 C-스타일 배열과 비교를 해 보겠습니다. 1. 배열생성 1부터 10까지 들어있는 배열을 생성하겠습니다. #include #include #include using namespace std; ...와 같은 헤더 혹은 uns는 생략하겠습니다. 이 모든 헤더파일이 import std.core; 하나면 끝 // [코드 1: 배열 생성] // C++11이상에서 동작합니다. int main() { int carray[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; std::array stdarray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}..

C++ 2020.03.21

[카루의 C++ 강좌] 1-6. 전처리기 - include, define

오늘은 C++의 문법에서 조금 벗어난, 전처리기에 관해 이야기를 해 보겠습니다. 전처리기 우리가 C++ 프로그램을 만들면 단순히 .cpp 파일이 .exe파일로 변하는 것이라고 생각할 수도 있는데 그렇지 않습니다. 우선 '전처리기'가 #이 붙은 모든 문장을 처리합니다. 이 친구는 컴파일러가 아니기 때문에 C++의 문법을 따르지 않아요. 전처리기의 작업이 끝나면, 컴파일러가 .cpp 파일을 .o 또는 .obj의 파일 형태로 컴파일합니다. 그 다음 링커가 .obj 파일을 묶어서 하나의 .exe 파일을 만들어냅니다. 우리는 C++ 프로그램을 작성할 때마다 위와 같은 과정을 반복합니다. ​ 전처리기가 담당하는 전처리 지시문에는 include, define, region, pragma, if, ifdef 등이 있는..

[카루의 C++ 강좌] 1-3. 변수의 선언과 자료형

변수는 말 그대로 변할 수 있는 수입니다. 변수엔 자료형에 맞는 값을 저장하고 사용할 수 있습니다. ​ 예를 들어, int age; 라고 하면 age라는 이름의 int형, 즉 정수형 변수가 선언된 것입니다. int형 변수는 4바이트로, 저장할 수 있는 값의 범위는 -2,147,483,648~2,147,483,647입니다. 일반적으로 쓰기엔 이정도도 차고 넘치죠. ​ 그럼 이 age란 변수에 나이를 저장해 보겠습니다. int age; age = 349; 네, age란 변수에 349를 할당했습니다. 변수에 값을 할당할 때는 대입연산자 '=' 를 사용하여 값을 대입할 수 있습니다. 수학에서의 등호랑은 좀 달라요. 변수명이 반드시 왼쪽에 와야 합니다. 349 = age; 이렇게 하면 작동하지 않습니다. ​ 변수..

[카루의 C++ 강좌] 1-1. C++ 프로그램의 시작, main() 함수

C++ 프로그램에서, main() 함수는 특별한 존재로 취급받고 있습니다. 프로그램에 단 하나만 존재해야 하며, 반환값은 int이고 프로그램이 실행할 때 가장 먼저 실행되는 함수이죠. (물론 이 말은 틀립니다.. 전역 클래스의 ctor가 더 먼저 실행이 되지만..) ​ 저번 시간에 봤던 이 코드, 기억하시나요? #include int main() { std::cout

[카루의 C++강좌] 0. 시작하며 & 목차

안녕하세요! 카루입니다. C++도 다 같은 C++이 아니라는 것 알고 계시죠? C++의 역사를 살펴보자면, 처음에 공식으로 승인된 표준안 ISO/IEC 14882:1998 (약칭 C++98) 을 시작으로 C++의 공식 표준안이 시작이 되죠. 그 후 별로 변한 게 없던 C++03이 나오고, 2007년 TR1 (테크니컬 리포트)가 제정되면서 슬슬 변하기 시작합니다. 마침내 2011년 8월 12일, ISO/IEC 14882:2011, C++11이라는 이름으로 완전히 새롭게 변한 C++이 제정되었고, 현재 대부분의 책도 C++11을 기준으로 설명합니다. 이 이후로 3년에 한 번씩 업데이트가 진행되면서 C++14에서 사소한 개선이 되다가, 또다시 C++17을 거치면서 크게 변하고, 마침내 2020년 현재 C++2..

반응형