Programming/C++ STL2010. 9. 9. 15:12
음.. 예전에 어떤 분의 블로그에서 스마트 포인터 란것을 들었지만
어떤건지 알지 못했는데 C++/STL 공부하면서 문득 떠올라 검색을 하니 아래와 같이 상큼하게 정의가 내려져있다.

C++은 자바와 같은 가비지 컬렉션(GC) 기능이 없어서,
new로 동적 할당한 객체를 매번 delete를 써서 수동으로 삭제해야 하는 건 아실 겁니다.
조심하지 않으면 엄청난 메모리 누수(leak)가 나버리는 버그가 발생할 가능성이 있죠.
(이런 버그를 잡기위해서 바운즈 체커나 코드 가드와 같은 프로그램이 나온거죠.)

....

부스트 라이브러리의 스마트 포인터에 대한 문서는 다음 링크를 참고하세요.
http://boost.org/libs/smart_ptr/smart_ptr.htm
http://boost.org/libs/smart_ptr/shared_ptr.htm

위의 예제를 boost::shared_ptr을 써서 고치면 다음과 같습니다.

void doSomething()
{
  typedef boost::shared_ptr<Widget> SPW; // "Shared_Ptr to Widget"
  vector<SPW> vwp;
  for (int i = 0; i < SOME_MAGIC_NUMBER; ++i)
    vwp.push_back(SPW(new Widget));
  ...
} // vwp가 스코프에서 벗어나는 순간, 자동으로 메모리를 해제합니다.


[링크 : http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=22740]

간단하게 말하자면, free() 를 알아서 해주는 일종의 "프레임웍"이나" 라이브러리"라는 의미.

머.. 그래도 인간이 직접 적절하게 free() 해주는게 장땡인듯 -ㅁ-
[링크 : http://www.iamcorean.net/131]

'Programming > C++ STL' 카테고리의 다른 글

C++ 레퍼런스 변수(reference variable)  (4) 2010.09.15
C++0x  (0) 2010.09.15
std::vector 포인터  (0) 2010.09.13
C++ 강좌/문법/reference  (4) 2010.09.09
STL 그리고 Template  (0) 2010.09.09
Posted by 구차니
Programming/C++ STL2010. 9. 9. 11:12
winapi.co.kr 의 주인장은.. 영자 사기캐릭 스멜이 자꾸만 난단 말이지..
아무튼 뜬금없이(!) C++ 공부중!

[링크 : http://winapi.co.kr/]
    [링크 : http://winapi.co.kr/clec/cpp3/cpp3.htm]
[링크 : http://www.cppreference.com/wiki/start]
[링크 : http://www.cplusplus.com/reference/]

'Programming > C++ STL' 카테고리의 다른 글

C++ 레퍼런스 변수(reference variable)  (4) 2010.09.15
C++0x  (0) 2010.09.15
std::vector 포인터  (0) 2010.09.13
스마트 포인터(smart pointer)  (2) 2010.09.09
STL 그리고 Template  (0) 2010.09.09
Posted by 구차니
visualSVN은 apache와 svn 서버를 통합한 녀석으로 윈도우용 버전에 free / enterprise 버전이 존재한다.
예전에 아파치 + SVN 통합은 먼가 복잡해서 포기했었는데 이녀석을 한번 시간내서 설치해 봐야겠다.


기능상의 제약이 있지만, 상업용도로도 Standard Edition을 무료로 사용이 가능하다는 것은 충분한 장점!

[링크 : http://www.phpk.org/archives/181]
[링크 : http://www.visualsvn.com/]

'프로그램 사용 > Version Control' 카테고리의 다른 글

apache2 리눅스 계정으로 인증하기(PAM)  (0) 2010.11.11
Apache + SVN on Ubuntu 10.04  (0) 2010.11.03
TortoiseSVN tag/branch = copy  (2) 2010.04.30
cvs2svn 사용방법 2  (0) 2010.04.23
svn / svnadmin 도움말  (0) 2010.04.23
Posted by 구차니
Programming/C Win32 MFC2010. 9. 9. 09:54
WinMain은 어플리케이션(독립 프로그램)의 ENTRY point 이고
DllMain은  Dll(라이브러리)의 ENTRY point 이다.

리눅스의 so 에서는 이런 ENTRY point가 없었는데, 먼가 생소한 느낌 -ㅁ-!

int CALLBACK WinMain(
  __in  HINSTANCE hInstance,
  __in  HINSTANCE hPrevInstance,
  __in  LPSTR lpCmdLine,
  __in  int nCmdShow
);

[링크 : http://msdn.microsoft.com/en-us/library/ms633559%28VS.85%29.aspx] WinMain

BOOL WINAPI DllMain(
  __in  HINSTANCE hinstDLL,
  __in  DWORD fdwReason,
  __in  LPVOID lpvReserved
);

[링크 : http://msdn.microsoft.com/en-us/library/ms682583%28VS.85%29.aspx] DllMain

Dll 역시 굳이 엔트리 포인트가 필요는 없으나, 단순한 함수의 모음이 아닌 특정 모듈로서의 Dll 이라
초기화가 필요하다면, 엔트리 포인트를 써야 한다고 한다.
[링크 : http://todayis.tistory.com/210]

그래도 역시 DllMain은 비어있는게 정석?!
[링크 : http://www.jiniya.net/tt/788]
Posted by 구차니
링크를 걸때는 주로
URL을 입력하고, 입력한 URL을 선택하고, 복사후에 Ctrl-K 단축키로
링크를 열고, 복사한 URL을 붙여넣었었는데...

우연히...
링크에 바로 주소를 넣으면 링크가 걸린다는 사실을 알아냈다 -_-




도대체.. 왜 이런 뻘짓을 해왔던거지.. 라는 자괴감 작열중 -_-

'개소리 왈왈 > 블로그' 카테고리의 다른 글

크롬이 불여우를 제끼다  (8) 2010.12.21
2000번 글 돌파기념?  (2) 2010.09.15
블로그 카테고리 개편  (4) 2010.08.05
내 블로그의 구글 랭크는?  (8) 2010.08.03
개발자가 블로그를 해야하는 이유  (11) 2010.07.21
Posted by 구차니
Programming/C++ STL2010. 9. 9. 09:14
STL - Standard Template Library
원래는 SGI 에서 C++ 지원용으로 개발된 템플릿이다.
[링크 : http://www.sgi.com/tech/stl/index.html]

Scott Meyers 가 작성한 Effective STL (200page)
[링크 : http://www.uml.org.cn/c++/pdf/EffectiveSTL.pdf]

Template는 c++ 에서 지원하는 기능으로
함수나 클래스등을 형(type)에 관계없이 작동시키는(generic type - 일반형) 것이라고 한다.

#include <iostream>
 
template <typename T>
const T& max(const T& x, const T& y)
{
  if(y < x)
    return x;
  return y;
}
 
int main()
{
  // This will call max <int> (by argument deduction)
  std::cout << max(3, 7) << std::endl;
  // This will call max<double> (by argument deduction)
  std::cout << max(3.0, 7.0) << std::endl;
  // This type is ambiguous; explicitly instantiate max<double>
  std::cout << max<double>(3, 7.0) << std::endl;
  return 0;
}

[링크 : http://en.wikipedia.org/wiki/Template_%28programming%29]

[링크 : http://en.wikipedia.org/wiki/C%2B%2B_Standard_Library]
[링크 : http://www.iis.sinica.edu.tw/~kathy/vcstl/templates.htm]

'Programming > C++ STL' 카테고리의 다른 글

C++ 레퍼런스 변수(reference variable)  (4) 2010.09.15
C++0x  (0) 2010.09.15
std::vector 포인터  (0) 2010.09.13
스마트 포인터(smart pointer)  (2) 2010.09.09
C++ 강좌/문법/reference  (4) 2010.09.09
Posted by 구차니
Microsoft/Windows2010. 9. 8. 18:30
XPmode 란거 이름만 듣다가, win7으로 갈아타고 깔아볼려 하니..
홈 프 따윈 꺼져주셈~! 이라고 뒤늦게 외쳐주는 마소같은 넘들 우씨!

[링크 : http://www.microsoft.com/windows/virtual-pc/download.aspx]

아무튼, XPmode 의 장점은 바로 라이센스가 없어도 된다는 점!
회사에서 정품을 쓰도록 하다보니, 아무래도 가상머신에서 돌아가는 OS도 돈이 지불되어야 하나 걱정이 되는데
Win7 Ultimate에 들어있는 XPmode의 guest OS인 WinXP에는 라이센스비가 들지 않는다고 한다.
(조금 더 조사는 해봐야겠지만... 내가 울티메이트가 아닌데 머 ㄱ-)

[링크 : http://arrestlove.tistory.com/218]
[링크 : http://purewell.biz/4537747]
[링크 : http://ctrl21c.spaces.live.com/Blog/cns!DAB17B956D061FBA!121.entry]
Posted by 구차니

으헝헝 SUN 이 Oracle에 인수되고 나니
오픈오피스 로고도 Oracle로 짠~

근데 왠지 어색한건... 기분탓이려나?



2010.09.16 추가
아래는 3.2 버전의 스플래시 화면


Posted by 구차니
Microsoft/Windows2010. 9. 8. 16:06
vista는 안써봤으니 모르겠고, 아무튼 win7에서는 창크기를 변화시키는 특이한 방법이 하나있다.

제목표시줄을 드래그해서 옮기는데
   화면의 상단에 닿으면 물에 돌 던지는 듯한 효과가 나타나는데
   그때 마우스를 놓으면 "최대화" 된다.

제목표시줄위를 드래그해서 창의 크기를 조절하는데
   화면의 상단에 닿으면 물에 돌 던지는 듯한 효과가 나타나는데
   그때 마우스를 놓으면 창이 수직으로 가득차게 된다.


아래의 화살표 오른쪽의 원형의 이펙트가 위의 상황을 나태내주는 것임.

일단 세로로만 되며, 가로 변경시에는 이펙트가 발생하지 않으며 이러한 창 크기 바꾸는 효과도 실행되지 않는다.
XP만 쓰다가 win7으로 옮겨오고는 신기해 하는중 -_-
Posted by 구차니
아이디어!2010. 9. 8. 09:13
현재 유니"코드"를 사용하고 완성형으로 사용하며,
폰트역시 완성형으로 사용을 하는 세상에 우리는 살고있다.

그런 이유로, 한글 폰트를 만드려면 최대 11172자, 최소 3000여 자는 만들어야 한다.
다르게 말하자면, 폰트 만드는것 자체도 엄청난 노가다이며, 이러한 폰트는 엄청난 용량을 차지할수 밖에 없다.

하.지.만 우리가 사용하는 한글 폰트 자체의 표준을 조합형으로 바꾸면 어떨까?
그러면 개인들이 폰트를 많이 만들어서 외국처럼 이쁜 글꼴도 많아질텐데 말이다.
그리고 용량도 줄어들테고 말이다.

물론, 완성형 폰트라고 해서 제작방식 자체를 조합형으로 바꾸지 못하는 건 아니지만,
폰트 렌더링시에 조합형으로 하는게 약간의 오버헤드는 생기겠지만, 충분히 타협할 만한 수준이라고 생각이 되는데 음...

[링크 : http://juno.springnote.com/pages/58618.xhtml]
[링크 : http://jooks8051.com.ne.kr/ksx1001.htm]

자음은 초성용과 종성용으로 구분하고
모음은 종성이 있는 것과 없는 것으로 구분

종성용 복자음(ㄳ ㄻ ㄼ 이런것들)은 초성의 단자음을 조합하고
모양이 다를경우 복자음용 폰트를 별도로 구성하여 조합하도록 하면 자소단위 글꼴을 만들어
더 많은 무료글꼴과 더 이뻐진 글꼴들을 만날수 있을텐데 아쉬움이 든다.

이러한 방법으로 비트맵 글꼴 뿐만 아니라 벡터 글꼴에도 적용한다면 좋을텐데..


ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ ㅈ ㅊ ㅋ ㅍ ㅎ
ㄲ     ㄸ         ㅃ ㅆ

ㅏ ㅑ ㅓ ㅕ ㅗ ㅛ ㅜ ㅠ ㅡ ㅣ
ㅐ ㅒ ㅔ ㅖ ㅚ     ㅟ     ㅢ

('가' 로 시작하는 종성만 참조)


[링크 : http://uncyclopedia.kr/wiki/%EB%8F%84%EC%9B%80%EB%A7%90:%EC%98%9B%ED%95%9C%EA%B8%80/%EC%98%9B%ED%95%9C%EA%B8%80_%EC%A2%85%EC%84%B1_%EB%AA%A9%EB%A1%9D]
Posted by 구차니