'분류 전체보기'에 해당되는 글 56건

  1. 2013.10.30 Ankhsvn Shortcut
  2. 2013.07.20 deprecated declaration (VC++)
  3. 2013.06.26 [C++11] Range Based For-Loop with custom type.
  4. 2013.05.16 잡설
  5. 2013.04.30 C#, SQLite
  6. 2013.04.26 [C++11 Overview] make_shared
  7. 2013.04.26 [C++11 Overview] emplace, emplace_back
  8. 2013.03.29 [TCP/IP 소켓 프로그래밍 C#] Asyncronous Echo Server 예제 코드
  9. 2013.03.28 [TCP/IP 소켓프로그래밍 C#] TcpEchoClientAsync
  10. 2013.03.21 [TCP/IP 소켓프로그래밍 C#] ItemQuoteEncoderText class

Ankhsvn Shortcut

etc 2013. 10. 30. 13:38

// 나중을 위한 메모 수준의 글 //






VS2012 기준


TOOLS -> Options -> Environment -> Keyboard


CompareBase 에 Alt + 1

CompareLatest 에 Alt + 2

File.CommitItem 에 Alt + 3

ProjectandSolutionContextMenus.CrossProjectSolutionProject.SolutionCommit 에 Alt + 4

EditorContextMenus.CodeWindow.Subversion.DocumentHistory 에 Alt + 5  << 파일의 리비전 히스토리뷰

AnkhSVNContextMenus.LogViewerList.LogShowChanges 에 Crtl + ` << 리비전 히스토리 창에서 선택한 리비전의 Show Change 띄워줌.


를 할당.


Alt + 숫자키는 팀파운데이션 기능 바인딩이라 .. professional 버전 사용 중이니 그냥 무시하고 셋팅해버림..


'etc' 카테고리의 다른 글

잡설  (0) 2013.05.16
Sublime Text 2 설정  (0) 2013.03.06
LINK : fatal error LNK1201: error writing to program database ...  (0) 2012.03.16
:

deprecated declaration (VC++)

Short Articles 2013. 7. 20. 20:30

오랫만의 포스팅 이군요.


deprecated 선언에 대한 간단한 얘기를 좀 남겨볼까 합니다.


보통 C++ 를 배우고 Visual C++ 을 IDE 로 채택해서 작업을 해나가는 프로그래머들이


언뜻 언뜻 CRT 의 함수 중 보안 취약성으로 인해서 C4995 경고를 만나게 되면서


deprecated 에 대해서 인지하게 되지 않나 싶은데요.


msdn (http://msdn.microsoft.com/en-us/library/044swk7y.aspx을 보면 설명이 나오지만


나타내고자 하는 바는 단순합니다. 


deprecated 로 선언된 함수나 타입을 사용할 때 사용자에게 조심하라는 말을 전달하고 싶은 것이죠.


그런데, 프로그래밍을 시작한지 얼마 안되는 시점에서는 이 deprecated 선언의 필요성에 대해서 잘 느끼지 못하지 않나 싶습니다.


그래서 간단한 하나의 예정도를 적어 보자면..


모종의 변환 행렬을 연산해서 3D 공간 상의 Object 의 위치를 얻어 내는 함수가 있다고 가정 합시다.


개발이 진행 되고 서비스를 시작한 뒤 점차 추가적인 컨텐츠를 붙여나가던 도중에 이 함수가 특정 상황에서


내부적으로 행렬 연산을 잘 못하게 되는 버그가 발견 되었다고 칩시다.


이 경우에 가장 첫 번째로 생각하게 되는 솔루션은 해당 함수의 버그를 수정한다 이겠지만 ..


이렇게 할 경우 의도치 않은 상황이 발생할 수 있습니다.


다른 누군가가 이 함수를 가져다 사용하면서 함수의 버그를 수정하기 보다는 잘 못된 수치 만큼을 보정 작업을 추가로


삽입하는 식으로 사용하고 있을지도 모르기 때문입니다.


이런 경우에 택할 수 있는 선택지 중의 하나가 deprecated 선언으로 (이것도 나름의 문제는 있긴 하지만..)


버그가 내재된 기존의 함수를 deprecated 선언을 시키고 새로운 함수를 작성하고 이 후로는 그것을 사용하도록 유도하는 것입니다.


예를 들면,


__declspec(deprecated("리비전 넘버 100 이후로는 이 함수를 사용하지말고 foo_ver2 를 사용하세요."))

void foo() { }


이런식으로요.

:

[C++11] Range Based For-Loop with custom type.

Short Articles 2013. 6. 26. 10:08

커스텀 타입의 멤버 컨테이너에 대해서 range based for 를 지원하고자 할 때,

멤버 또는 전역으로 begin, end 함수를 제공해 주면 된다.

커스텀 컨테이너 타입을 사용 중이라면 해당 컨테이너가 iteration 지원이 되는지 확인한다.


'Short Articles' 카테고리의 다른 글

deprecated declaration (VC++)  (0) 2013.07.20
[C++11] std::condition_variable_any  (0) 2013.03.12
std::async - std::launch policy  (0) 2013.03.11
Template Keywords & Introduce Templates Meta Programming  (0) 2012.04.21
Class Template  (0) 2012.04.07
:

잡설

etc 2013. 5. 16. 19:27

벌써 2013 년도 5월 이군요...

으허헝...

'etc' 카테고리의 다른 글

Ankhsvn Shortcut  (0) 2013.10.30
Sublime Text 2 설정  (0) 2013.03.06
LINK : fatal error LNK1201: error writing to program database ...  (0) 2012.03.16
:

C#, SQLite

Code Snippet 2013. 4. 30. 15:44

test.db


간단한 읽기 테스트.

'Code Snippet' 카테고리의 다른 글

mt19937-64 C# ver. Code  (0) 2013.03.21
Framer Class  (0) 2013.03.20
ItemQuote - Get Data From MySQL DB  (0) 2013.03.20
UdpEchoClientTimeout  (0) 2013.03.20
std::future.wait_until  (0) 2013.03.08
:

[C++11 Overview] make_shared

Book Review 2013. 4. 26. 15:41

make_shared<T>(...) 는 T 의 생성자에서 요구하는 파라미터 값들을 인자로 주고

shared_ptr 객체를 얻습니다. 이 때, 표준상에서 구현이 강제되어 있지는 않지만

보통 make_shared 구현에서는  T 타입 객체에 대한 포인터와 참조카운트를 관리하는 객체의

메모리 할당을 하나의 메모리 블럭에 할당하는데, shared_ptr 객체를 직접 생성할 경우

두 군데의 다른 메모리 블럭으로 나뉘어지는 것에 비해 성능상 이득이 있다고 하네요.


cppreference 의 다음 글을 참조해보면 되겠습니다.


http://en.cppreference.com/w/cpp/memory/shared_ptr/make_shared


This function typically allocates memory for the T object and for the shared_ptr's control block with a single memory allocation (it is a non-binding requirement in the Standard). In contrast, the declaration std::shared_ptr<T> p(new T(Args...)) performs at least two memory allocations, which may incur unnecessary overhead.

Moreover, f(shared_ptr<int>(new int(42)), g()) can lead to memory leak if g throws an exception. This problem doesn't exist if make_shared is used.


:

[C++11 Overview] emplace, emplace_back

Book Review 2013. 4. 26. 11:33


vector 는 컨테이너 요소를 value 로 저장 하는데 auto_ptr 이나 unique_ptr 이나 value copy 가 안됩니다.
그래서 push_back 에서 에러가 발생하는데, std::move 를 통하여 rvalue 로 넘겨주거나 
인자를 rvalue 로 받아 해당 값을 파라미터로 받는 생성자를 컨테이너에서 바로 호출해 할당하도록 하는 
emplace 함수를 사용하면 됩니다. 
이 때, unique_ptr 은 std::move 를 통해서 명시적으로 넘겨줘야 합니다.


:

[TCP/IP 소켓 프로그래밍 C#] Asyncronous Echo Server 예제 코드

Book Review 2013. 3. 29. 14:59

AcceptBegin, AcceptEnd 말고 AcceptAsync 메소드를 쓰면 다음과 같은 식으로 처리..

msdn reference : http://msdn.microsoft.com/ko-kr/library/system.net.sockets.socketasynceventargs.aspx

:

[TCP/IP 소켓프로그래밍 C#] TcpEchoClientAsync

Book Review 2013. 3. 28. 18:10

Chapter 4 - TcpEchoClientAsync.cs 예제를 좀 고쳐본 것입니다.


:

[TCP/IP 소켓프로그래밍 C#] ItemQuoteEncoderText class

Book Review 2013. 3. 21. 14:45

ItemQuote 객체 정보를 encode 하는 예제 코드 부분입니다.

예제 코드라곤 하지만 따라 작성해보면서도 계속 껄끄러운 느낌이 들게 하는 코드였습니다.


: