본문 바로가기

[C++11] RValue Reference(1) C++11에서 새로 추가된 내용은 RValue Reference입니다.RValue Reference의 특징과 더불어 Move Sematics와 Perfect Forwarding에 대해서 알아보겠습니다.RValue는 간단해 보이는 구문이기는 하지만 실제로는 이해하기가 상당히 복잡한 편입니다.1. RValue와 LValueC++의 모든 표현식은 RValue나 LValue로 구분이 가능합니다.보통 LValue를 대입 연산자의 좌측에 있는 값, RValue를 우측에 있는 값으로 표현하는데 C++에서는 그런 방법으로 구분하지 않습니다.식이 표현이 지속성을 가질 때 LValue라고 하며 범위(Scope) 내의 다른 부분에서 다시 사용이 가능한 값입니다.그에 반해 RValue는 이런 지속성을 가지지 않는 임시적인 값.. 더보기
[블로그로 돈벌기] 애드센스 본문 우측 상단에 설치하기 많은 블로거들이 애드센스를 본문의 우측 상단에 많이 배치를 해서 사용합니다.글을 보게 되면 반드시 노출이 되는 위치이기 때문에 선호되는 위치입니다.본문에 애드센스를 추가하는 방법은 간단합니다.블로그 관리 페이지로 이동합니다.꾸미기의 HTML/CSS 편집을 선택합니다.skin.html에서 ##_article_rep_desc_# 을 검색합니다.이 윗 부분에 애드센스를 위한 광고 코드를 넣어줍니다.margin값은 수정할 수 있습니다.div 태그 사이에 애드센스의 광고 코드를 넣으면 됩니다.보통 우측 상단에는 336x280 사이즈의 광고를 노출시킨다고 합니다.다음과 같이 노출이 됩니다.다만 Syntax Highlighter를 통해서 소스 코드를 작성하면 광고를 덮어서 출력되는 문제가 보입니다.해당 문제에 대해서.. 더보기
[C++11] 이름 없는 함수, 람다(Lambda)(2) 이름 없는 함수, 람다(Lambda)(1) 링크는 다음과 같습니다.2014/12/11 - [Programming/C++11&14] - [C++11] 이름 없는 함수, 람다(Lambda)(1)람다에 대한 설명에 앞서서 람다의 구조에 대한 이미지를 다시 보도록 하겠습니다.1. 캡처(Capture)캡처는 해당 람다 구문을 포함하고 있는 Scope에 선언된 변수를 사용할 수 있게 해줍니다.캡처는 이미지에서 [=]로 표시된 부분입니다.기본적으로 []를 사용하면 Scope의 변수에 접근이 불가능하게 됩니다. #include using namespace std; void main() { int a = 0, b = 1; []() { // cout 더보기
[C++11] 이름 없는 함수, 람다(Lambda)(1) C++11에서 새롭게 추가된 문법은 람다입니다.람다는 그리스어 알파벳의 11번째 글자로 이런 모양으로 생겼습니다.이미 이전 C++11 포스팅([C++11] Range-Based For Loop)에서 람다를 사용한 for_each 구문을 사용한 적이 있었습니다.람다는 익명 함수(Anonymous Function)이라고도 부릅니다.함수의 몸체(Body)는 있지만 이름(Name)이 없기 때문입니다.람다는 STL의 함수 객체(Function Object 혹은, Functor)처럼 동작합니다.함수 객체처럼 암시적으로 함수 객체 클래스를 만들고, 함수 객체를 생성해서 전달합니다.혹시나 함수 객체를 모르시는 분은 STL을 공부하시는 것을 추천합니다. 람다는 함수 포인터와 함수 객체에 비해 다음과 같은 장점이 있습니다.. 더보기
[C++11] Range-Based For Loop C++11에서는 기존의 반복문인 for 문에도 변화가 있었습니다. 기존의 for 문은 다음과 같은 구조로 되어 있었습니다. for ( init-expression ; cond-expression ; loop-expression ) statement 초기식과 for loop를 빠져나갈 수 있는 조건, 마지막으로 loop 돌 때마다 실행할 식으로 구성되어 있습니다. 실제 사용에서는 다음과 같은 형태로 사용합니다. for (int i = 0 ; i < 10 ; i++) { // do something... } Range-Based For Loop을 보기 전에 Visual C++의 for each를 먼저 보겠습니다. for each 문법은 새로운 for 문법과 거의 유사한 형태로 다음과 같이 사용합니다. for.. 더보기
비보(Vivo) 세계에서 가장 얇은 스마트폰 X5 MAX 발표 세계에서 가장 얇은 스마트폰 X5 MAX가 발표되었습니다.무려 4.75 mm의 크기로 출시가 되었습니다.보드의 두께도 1.77 mm밖에 되지 않습니다.12월 22일부터 판매에 들어가며 중국에서 출시될 예정입니다.기존의 가장 얇은 스마트폰은 오포(Oppo)의 R5입니다.R5는 4.85 mm로 X5 MAX와 1 mm의 차이가 납니다.X5 MAX의 사양은 다음과 같습니다. Display 5.5 인치, 1920 x 1080 FHD, 16M 컬러, 슈퍼 아몰레드 CPU Quad-core 1.7 GHz Cortex-A53 & quad-core 1.0 GHz Cortex-A53 내장 메모리 16 GB RAM 2 GB 카메라 1,300만 화소 후면 카메라, 500만 화소 전면 카메라 배터리 2000 mAh 크기를 작게.. 더보기
[C++11] auto 키워드 기존 auto 키워드는 기억 클래스 지정자(storage-class specifier)였습니다.기존 auto는 그 의미가 없기 때문에 거의 사용되지 않았습니다.// 같은 의미입니다. auto int x = 0; int x = 0; 스크립트 언어들과 달리 C++은 타입을 중요하게 여깁니다.C#에서는 var라는 키워드를 통해서 명시적 타입없이 변수를 만들 수 있습니다.var x = 0; 과 같이 선언이 가능합니다.C#에서의 var는 동적 타입 언어와 달리 컴파일 시간에 타입을 결정합니다.C++11에서 auto는 기억 클래스 지정자가 아닌 동적으로 타입을 정할 수 있게 변경되었습니다.C++에서 STL을 사용하면 타입명 자체가 길어지는 경우가 생깁니다.std::vector::itera.. 더보기
[블로그로 돈벌기] 애드센스 사이드바에 설치하기 가장 기본적으로 사용되는 애드센스 배치 방법은 사이드바(좌측 혹은 우측의 메뉴바)에 배치하는 방법입니다.제 블로그에도 사이드바에 애드센스가 위치하고 있습니다.사이드바에 애드센스를 추가하는 방법은 간단합니다.블로그 관리 페이지로 이동합니다.좌측의 꾸미기 메뉴에서 사이드바를 선택하면 아래와 같이 사이드바를 수정할 수 있습니다.기본 모듈에 HTML 배너출력 옆의 + 버튼을 누릅니다.HTML 배너출력이라는 모듈이 사이드바 1 쪽에 추가가 됩니다.편집 버튼을 누르고 다음과 같이 입력해줍니다.이름은 원하는 이름을 작성하면 되며 HTML 소스에는 애드센스 광고의 코드를 붙여 넣습니다.사용자 모듈에 저장을 체크하면 모듈 보관함에 보관이 되어 언제든지 꺼내서 사용할 수 있습니다.사이드바에 사용되는 애드센스 광고 형태는 .. 더보기