Programming/C++ STL2013. 2. 15. 23:38
template의 식별자로서
typename 과 class는 키워드만 다를뿐 동일한 작동을 한다고 한다.

template <class identifier> function_declaration;
template <typename identifier> function_declaration;

[링크 : http://www.cplusplus.com/doc/tutorial/templates/


---
타입을 넣지 않고 숫자만 해도 일단은 되는데 아마도 이러면 int 형으로 인식을 하겠..지?

#include <iostream>

using namespace std;

template <class myType>
myType GetMax (myType a, myType b)
{
        return (a>b?a:b);
}

int main()
{
        cout << GetMax(1,2);
        return 0;
} 

아무튼, template <> 안에 갯수에 따라서 그거 보다 작은 숫자의 형을 지정할 수는 있지만 그걸 넘는 숫자를 지정할 수는 없다.
template <class myType>
myType GetMax (myType a, myType b)
{
        return (a>b?a:b);
}

int a,b;

GetMax<int>(a,b); // okay
GetMax<int,int>(a,b); // error

---
int a;
short b;
GetMax<int>(a,b); // okay 

그나저나.. short 형으로 해도 큰 문제는 없지만(영역을 안 넘으면) char로 하면
C에서 처럼 0~255 범위가 아닌 문자로 인식을 하기 때문에 비교를 제대로 못하는 것 같이 작동한다.
template <class T, class U>
T GetMin (T a, U b)
{
  return (a<b?a:b);
}


int a;
short b;
GetMin<int>(a,b); //okay
GetMin<int,int>(a,b); //okay

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

c++ cout 제어하기  (0) 2013.02.15
c++ inheritance(상속)  (0) 2013.02.15
Essential C++  (0) 2013.02.14
참조에 의한 전달(pass by reference)  (0) 2013.02.09
C++ 첫걸음 *-_-*  (0) 2013.02.09
Posted by 구차니
Programming/C++ STL2013. 2. 14. 23:59
시간이 없어서, 피곤해서 잘 못읽고 있는데
c++ 내용을 압축해서 하다 보니 읽기에는 좋은듯 한 책이다.


아무튼 C의 확장으로서 C++을 설명하는데
객체지향 보다는 템플렛을 이용한 범용 프로그래밍(제너릭 프로그래밍)이
오히려 C++의 강점이 아닐까? 라는 생각이 들게 한 책이다.

책 내용이 객제지향보다 제너릭 프로그래밍이 먼저인 이유가 있다면 말이다..


아무튼, stdlib 등에서 제공하는 sort등을 써본적이 없이 직접구현했던 이유중에 하나가
라이브러리로 존재하지만 이걸 사용하기에는 부족한게 많았고 변형하다 보면
결국에는 새로 짜는 셈이 되다보니 활용도가 낮았는데

c++ 에서는 이러한 표준 라이브러리의 효율성을 올리기 위해 변수 타입을 주고 받고
템플릿을 통해 범용 함수를 만들고, 함수 객체를 통해 손쉽게 함수 포인터를 대체 함으로서
더욱 강력하고 안정적이며 빠른 프로그래밍을 추구한 느낌을 받았다.
이에 비하면 객체지향은 구색 맞추기라는 느낌이라고 해야하려나..



템플렛(template)은 두개의 키워드 template와 typename으로 선언되고 추가적으로  < >를 사용한다.
template <typename T> return_type function name(T val)

T는 매크로 처럼 치환되어 여러개의 함수가 타입별로 생성되는 효과를 지닌다.
자세한건 짜보고 정리..

[링크: http://ikpil.com/725]

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

c++ inheritance(상속)  (0) 2013.02.15
c++ template  (0) 2013.02.15
참조에 의한 전달(pass by reference)  (0) 2013.02.09
C++ 첫걸음 *-_-*  (0) 2013.02.09
unsigned char -> int 변환 주의사항  (0) 2013.02.04
Posted by 구차니
쓸일이 생기려나..
일단 윈도우용은 존재하지 않아 cygwin을 통해서 실행을 해야 한다.

[링크 : http://fontforge.org/]
[링크 : http://fontforge.org/ms-install.html]

'모종의 음모 > 폰트 생성기' 카테고리의 다른 글

한글의 구성  (2) 2017.07.26
opentype font format  (0) 2017.07.26
폰트제작 프로그램  (0) 2017.07.26
Posted by 구차니
Programming/C Win32 MFC2013. 2. 14. 22:52

'Programming > C Win32 MFC' 카테고리의 다른 글

printf의 %s와 %S  (0) 2013.06.15
win32api - joystick 예제  (0) 2013.06.15
== 와 = 의 실수를 피하기 위한 트릭  (2) 2013.01.06
c 변수범위 헤더  (0) 2012.07.02
엔디안 / endian  (2) 2012.06.14
Posted by 구차니
graphviz에서 neato를 통해서 이미지로 변환이 가능한데, 예제는 다음과 같다.
$ neato -Tpng -O test.dot  

$ neato --help
neato: option -- unrecognized

Usage: neato [-Vv?] [-(GNE)name=val] [-(KTlso)<val>] <dot files>
(additional options for neato)    [-x] [-n<v>]
(additional options for fdp)      [-L(gO)] [-L(nUCT)<val>]
(additional options for memtest)  [-m]
(additional options for config)  [-cv]

 -V          - Print version and exit
 -v          - Enable verbose mode
 -Gname=val  - Set graph attribute 'name' to 'val'
 -Nname=val  - Set node attribute 'name' to 'val'
 -Ename=val  - Set edge attribute 'name' to 'val'
 -Tv         - Set output format to 'v'
 -Kv         - Set layout engine to 'v' (overrides default based on command name)
 -lv         - Use external library 'v'
 -ofile      - Write output to 'file'
 -O          - Automatically generate an output filename based on the input filename with a .'format' appended. (Causes all -ofile options to be ignored.)
 -P          - Internally generate a graph of the current plugins.
 -q[l]       - Set level of message suppression (=1)
 -s[v]       - Scale input by 'v' (=72)
 -y          - Invert y coordinate in output

 -n[v]       - No layout mode 'v' (=1)
 -x          - Reduce graph

 -Lg         - Don't use grid
 -LO         - Use old attractive force
 -Ln<i>      - Set number of iterations to i
 -LU<i>      - Set unscaled factor to i
 -LC<v>      - Set overlap expansion factor to v
 -LT[*]<v>   - Set temperature (temperature factor) to v

 -m          - Memory test (Observe no growth with top. Kill when done.)

 -c          - Configure plugins (Writes $prefix/lib/graphviz/config
               with available plugin information.  Needs write privilege.)
 -v          - Enable verbose mode 

위의 예제에서 -Tpng 가 출력 포맷인데 선택가능한 포맷의 목록은 다음과 같다.

Command-line
parameter
Format
bmp Windows Bitmap Format
canon 
dot 
xdot
DOT
cmap Client-side imagemap (deprecated)
eps Encapsulated PostScript
fig FIG
gd 
gd2
GD/GD2 formats
gif GIF
gtk GTK canvas
ico Icon Image File Format
imap 
cmapx
Server-side and client-side imagemaps
imap_np 
cmapx_np
Server-side and client-side imagemaps
ismap Server-side imagemap (deprecated)
jpg 
jpeg 
jpe
JPEG
pdf Portable Document Format (PDF)
plain 
plain-ext
Simple text format
png Portable Network Graphics format
ps PostScript
ps2 PostScript for PDF
svg 
svgz
Scalable Vector Graphics
tif 
tiff
TIFF (Tag Image File Format)
vml 
vmlz
Vector Markup Language (VML)
vrml VRML
wbmp Wireless BitMap format
webp Image format for the Web
xlib Xlib canvas

[링크 : http://www.graphviz.org/doc/info/output.html]
2013/01/14 - [프로그램 사용/graphviz] - graphviz / neato
 
심심해서(?) svg로도 출력을 해보니 잘 나오는데, UNIX 문서로 되어있는지 메모장으로는 깨져 보인다.
(SVG는 원래 XML 과 같은 Markup이니 메모장으로도 보임)

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

graphviz / neato  (0) 2013.01.14
Posted by 구차니
ATI Radeon X850에서는 원인불명으로 죽던 녀석이...
Nvidia Geforce GTX 650으로 바꾸고는 잘 돈다 -_-


까칠한 녀석 -_-t



이제 데드 스페이스 1,2를 끝내고는 3를 결제하고
크라이시스 1,2,3를 깨야하나? ㅋㅋㅋ 

'게임 > 데드 스페이스 시리즈' 카테고리의 다른 글

간만에 데드 스페이스 2  (0) 2013.03.10
데드 스페이스 2 공략  (0) 2013.03.02
데드 스페이스 1 엔딩(easy)  (0) 2013.03.02
데드스페이스 1 - 챕터 11  (0) 2013.02.24
데드 스페이스 공략  (0) 2013.02.16
Posted by 구차니
개소리 왈왈/컴퓨터2013. 2. 13. 22:10
GTX650으로 바꾸고 갑자기 사운드 카드가 증발해서 당황 -_-
재생장치에는 NVIDIA HDMI Output 만 세개 잡혀서 (HDMI / DVI x 2) 
헐 머지.. 하고 alc888 드라이버 설치하는데도 살아나지 않아서 고민을 하다

BIOS 들어가려는데 PS/2가 아니라서 부팅중에는 키가 안먹네 아놔.. -_-
다시 PS/2 키보드 연결하고 다시 켜서
BIOS 설정중 Audio Codec 설정을 AUTO에서 Enable로 바꾸니 바로 인식.


아무래도 그래픽 카드쪽의 HDMI audio를 사운드 카드로 인식을 해서
외장 사운드 카드가 추가되었다고 착각해서
메인보드에서 내장 사운드를 죽여버린듯 -_- 

'개소리 왈왈 > 컴퓨터' 카테고리의 다른 글

1테라 복사하는데 걸리는 시간이...  (4) 2013.03.06
가상서버 호스팅  (0) 2013.02.18
Geforce GTX650 지름  (0) 2013.02.13
지름신 목록  (2) 2013.02.11
2013 CES 관련 글들을 보며 느낀 추세  (4) 2013.01.13
Posted by 구차니
개소리 왈왈/컴퓨터2013. 2. 13. 22:08
다나와 장터에서 싸게 나온 매물이 있어서 앗싸 좋쿠나 하고 눌렀더니 집근처 ㅋㅋㅋ
그래서 이것저것 조사해서 접선해서! 후다닥 질르고 옴

기존에 사용하던 ATI Radeon X850에 비하면 천국인듯 ㅋ
X850은 5.9점


GTX 650은 7.3점 음? 의외로 낮게 나오는건가?


아무튼 그래픽 카드는 이렇게 생겨먹음 ㅋ
X850보다도 약간 아담한 사이즈



아무튼 싸게 팔아주신 업주분에게 감사함의 마음으로 홈페이지 링크 서비스~ ㅋ
[링크 : http://www.adenpc.com/]

'개소리 왈왈 > 컴퓨터' 카테고리의 다른 글

가상서버 호스팅  (0) 2013.02.18
alc888 과 GTX650 사운드 카드 인식 충돌  (1) 2013.02.13
지름신 목록  (2) 2013.02.11
2013 CES 관련 글들을 보며 느낀 추세  (4) 2013.01.13
TC1100 무선랜 교체!!  (0) 2012.12.20
Posted by 구차니

1950년 6월 25일 통상 6.25가 벌어졌습니다.

아마 전쟁에 군인으로 참전했다면 못해도 (학도병이 아니니) 20살 이상이겠죠

그러면 1930년대 생이고 지금으로 치면 80세 이상 입니다.


전쟁으로 죽거나, 전후 영양부족으로 돌아가시거나

아마 전쟁에 참전하셔서 참상을 본 분들은 거진 돌아가시지 않았을까 합니다.


지금의 전쟁불사를 외치는 분들은 엄밀하게 전쟁세대가 아닌 '전후세대' 입니다.

전쟁의 참상을 복구하면서 결과만 보이는 파괴자로서의 '북한'을 증오하는 세대인거죠.

그렇기에 부모를 잃은 서러움까지 합쳐 '북한'을 증오할뿐

전쟁이 피를 흘린다는 사실을 깨닫지 못한채 부모의 빈자리만을 증오할 뿐이겠죠.




개인적인 생각입니다만..

그래서 그 분들이 전쟁 불사를 외치는게 아닐까 생각합니다.



지금의 30대들이 전쟁반대를 외치는 이유는

풍족한 생활을 했지만 그렇다고 해서 그 분들의 상처를 모르는 것도 아니며

그분들의 희생으로 더 많은 공부를 통해

그리고 걸프전의 실시간 중계를 통해 '전쟁은 타인을 죽이는 행위'라는 것을 알았기 때문이겠죠.



--
오유에꺼 내글임. 

Posted by 구차니
북핵의 영향은 거의 없다고 할 정도로 증시에는 영향이 없는 기분?



그나저나.. 북한이 이렇게 나오면.. 국제적으로 왕따가 되고..
하지만 더 웃긴건.. 북한vs미국식으로 이제 대화채널이 열리지 한국은 더더욱 왕따가 될지도.. 

'개소리 왈왈 > 직딩의 비애' 카테고리의 다른 글

2013년 1,2월 반성  (0) 2013.03.03
스팀 22일까지 50~75% 할인 기간  (0) 2013.02.18
1월 끝, 2월 시작  (0) 2013.01.31
아아 나에게 필요했던건 여행이구나  (6) 2013.01.27
내일 울산... ㅠ.ㅠ  (0) 2013.01.26
Posted by 구차니