본문 바로가기

[C++11] RValue Reference(4) 6. RValue Reference의 추가적인 특징RValue Reference의 추가적인 특징들입니다.이미 설명한 것과 같이 RValue의 Move Sematics와 Perfect Fowarding은 성능 향상에 많은 도움을 제공합니다.그 외 RValue Reference의 추가적인 특징은 다음과 같습니다.1) RValue Reference와 LValue Reference를 받는 함수를 오버로딩 가능하다.RValue와 LValue는 다르게 취급되기 때문에 RValue Reference와 LValue Reference를 전달받는 함수는 오버로딩이 가능합니다.이미 생성자와 대입 연산자를 통해서 알아 본 내용입니다. #include using namespace std; // A class that conta.. 더보기
Internet Explorer 10 이상 버전에서 IE 9 표준 모드로 실행 Internet Explorer 10 이상 버전에서 일부 비정상적으로 화면이 출력되는 웹페이지가 존재합니다.이전 버전의 표준을 지키고 있는 웹페이지들로 호환성 보기를 활용하면 쉽게 적용이 가능합니다.이렇게 IE 9 혹은 IE 8 표준으로 보기를 원하는 경우에 다음과 같은 방법을 사용하면 됩니다.regedit를 실행합니다.다음 경로를 찾아 줍니다.HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION 만약에 존재하지 않는다면 다음 경로를 확인하시기 바랍니다. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureCo.. 더보기
[C++11] RValue Reference(3) 5. Forwarding Problem과 Perfect FowardingFowarding Problem은 레퍼런스 타입을 매개 변수로 갖고 있는 제너릭 함수에서 발생할 수 있습니다.레퍼런스 타입의 매개변수를 다른 함수에 전달해 주는 과정에서 발생할 수 있습니다.예제를 먼저 확인하겠습니다. struct W { W(int&, int&){} }; struct X { X(const int&, int&){} }; struct Y { Y(int&, const int&){} }; struct Z { Z(const int&, const int&){} }; template T* factory(A1& a1, A2& a2) { return new T(a1, a2); } int main() { int a = 4, b = 5;.. 더보기
[C++11] RValue Reference(2) 3. Move SemanticsRValue Reference는 Move Semantics를 통해서 성능 향상이 가능합니다.객체의 리소스를 다른 객체로 이동시켜주는 것이 Move Semantics입니다.왜 기존의 복사가 아닌 이동을 사용해야 되는가에 대한 이유는 다음과 같습니다.RValue가 표현식 이후에 어디에서도 참조할 수 없는 임시적인 값이기 때문에 복사 대신 이동을 하는 것입니다.LValue라면 리소스의 이동을 해버리면 원본이 훼손되는 문제가 있지만 RValue는 그런 문제가 생기지 않습니다.이 Move Semantics의 이점은 복사 생성자, 복사 대입 연산자 등에서 발생하는불필요한 리소스의 할당 및 복사, 해제의 과정을 생략할 수 있다는 점입니다.STL의 vector를 통해서 자세히 알아보도록 .. 더보기
안드로이드용 하스스톤 출시 블리자드에서 안드로이드용으로 하스스톤을 출시하였습니다.구글 플레이스토어에 하스스톤 안드로이드 버전이 등록되었습니다.https://play.google.com/store/apps/details?id=com.blizzard.wtcg.hearthstone다만 현재 한국에서는 다운로드가 불가능하다고 합니다.지원 언어는 다음과 같습니다.* English * Français * Deutsch * Español (Latinoamérica) * Español (Europa) * Italiano * Português * Polski * Русский * 한국어 * 简体中文 (중국어 번체) * 繁體中文 (중국어 간체) 하스스톤 머신으로 윈도우 탭을 구매하는 사람도 상당수 있었던 걸로 아는데 타격이 있지 않을까 싶습니다.적.. 더보기
new 사용시 예외 처리 new는 C++에서 객체의 메모리 할당과 생성자 호출을 통한 초기화를 담당합니다. C의 malloc, calloc은 메모리 할당에 실패하게 되면 NULL을 리턴해줍니다. 하지만 new는 메모리 할당에 실패했을 때 NULL을 리턴하지 않습니다. 따라서 다음과 같이 예외 처리를 할 경우에는 정상적으로 동작하지 않습니다. 잘못된 코드 #include using namespace std; void main() { char* pData = new char[0x7FFFFFFF]; if (nullptr == pData) { cout 더보기
[블로그로 돈벌기] 애드센스 본문 하단에 설치하기(1) 애드센스는 주로 본문 상단에 위치시킬 때 좀 더 노출이 잘 된다고 할 수 있습니다.상단의 애드센스는 글을 읽을 때 반드시 봐야 할 부분이기 때문입니다.애드센스를 본문의 하단에도 설치가 가능합니다.본문의 하단에 설치하는 방법은 본문 상단에 위치시키는 것과 유사합니다.다만 추가적으로 작업이 필요합니다.블로그 관리 페이지로 이동합니다.skin.html에서 ##_article_rep_desc_## 을 검색합니다.본문 상단은 이 치환자 위에 광고를 위치시켰다면 본문 하단은 이 치환자 아래에 위치시키면 됩니다.다만 추가적인 작업이 필요합니다.본문 하단에 애드센스를 위치시키면 카테고리의 다른 글 밑으로 뜨기 때문입니다. 사이에 다음과 같은 코드를 입력합니다. 바로 위에 위치시키면 됩니다. 애드센스 광고를 ##_art.. 더보기
애플 온라인 스토어, 미국과 영국에서 페이팔 지원 애플이 미국과 영국의 온라인 스토어에서 새로운 결제 수단으로 페이팔을 지원하기 시작했습니다.또한 페이팔을 통해서 18개월 무이자 할부 서비스가 가능하다고 합니다.현재는 미국과 영국에서 서비스를 시작하지만 향후 지원 국가가 확대될 예정입니다.페이팔의 지원으로 해외의 사용자도 미국과 영국의 스토어에서 구매가 가능하게 되었습니다.다만, 배송지가 미국이나 영국의 주소로 되어야 하는 것은 당연합니다.저도 해외 구매를 위해서 페이팔을 자주 사용하는데 페이팔을 통해서 구매가 가능한 부분은 큰 장점이 될 것으로 보입니다.현재 미국의 온라인 스토어를 통해서 페이팔 구매 옵션이 존재하는 것을 확인할 수 있습니다.다만 현재 애플은 애플 페이라는 새로운 결제 수단을 만들어서 사용자를 늘리려고 하는데향후 페이팔과 관계가 어떻게.. 더보기