Loading...

문자표

글쓸때마다 불편해서 복사.ㅎㅎ. 은근히 편하다. 。 · ‥ … 〃­―∥\¨∼‘’“”′″ ♭♩♪♬◆☆★◐◑○●◎⊙◈◇△▲▽▼□■◁◀▷▶◇◆♤♠♡♥♧♣ ☏☎☜☞※¤♨†‡㈜㉿▣▒▤▥▨▧▦▩♂♀¶ ℃℉Å¢£¥₩°。‰¡¿~ˇ˘⌒˚ →←↑↓↔↕↗↙↖↘⇒⇔∀∃∏∂∇∫∬∮§×∴±∵÷≠≤≥≒≡√∑ 〔〕《〈〉《》≫「」『』【 】∈∋⊆⊇⊂⊃∪∩∧∨÷∞∝∽∠⊥ ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮ ㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭ ㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻ ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ æΔΦΨΩαβγδεζηθικλμνξοπρστυφχψω ㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎛㎟㎠㎡㎢㏊㎍㏈㎧㎨㎰㎶Ω㎮㎯㏆ ½⅓⅔¼¾⅛⅜⅝⅞¹²³⁴ⁿ₁₂₃

함수 템플릿에 문자열 리터럴을 인자로 사용.

함수템플릿의 레퍼런스 파라미터로 문자열을 전달할경우 일어날수 있는 일들. template inline T const & max( T const & a, T const & b ) { return a [ 1> T=const char [5] 1> ] 머야.이건...ㅡㅡ;...무서워.. 참조자로 받지 않으면 어떻게 되니?? t..

템플릿 템플릿 파라미터

템플리의 파라미터로 템플릿을 사용하는 것을 말한다. 이를 사용하는 이유는 요소의 데이터형에 대해 다시 명시해 주지 않아도 컨테이너형을 명시할 수 있는 템플릿을 선언할 수 있다는 점이다. ex) Stack vStack; Stack > vStack; 첫번째 줄의 샘플을 보면 내부 컨테이너형을 명시하기 위해 컨테이너형과 함께 요소의 데이터형도 다시 넘겨준다. 하지만 템플릿 템플릿 파라미터를 사용하면 두번째줄의 예와 같이 요소의 데이터형에 대해 다시 명시해주지 않아도 된다. template // 템플릿 템플릿 파라미터, class 키워드사용해야함. class Stack { private: CONT elems; // elements public: void push(T const&); // push element ..

warning C4251

헐헐..이런삽질이.. warning 하나 없애보겠다고 그렇게 삽질을 하다니.... 분명 dll 지정해줬는데 말야 왜 인터페이스가 없다고그러는 겐지. 위의 첨부 파일을 읽어보면 답을 알 수 있다. 어느분이 쓴지는 몰겠지만 존경합네다.(--)(__) 꾸벅. 이 경구 메세지는 STL 컨테이너 정의에 _declspec(dllexport) 선언이 되어있지 않은 클래스템플릿을 export 할시에 나타난다. - 해결 방법 vector의 경우엔 템플릿을 인스턴트화 시킨 후 사용하면 해결되지만 다른것은 안된다. 이유는 vector는 워낙 많이 쓰는 거라 특별이 되도록 만들어 놨기 때문이라나~ vector 해결법 : template class __declspec(dllexport) std::vector; 그 이외엔 #pr..

데이터형이 아닌 클래스 템플릿 파라미터

인자로 넘겨받는 것이 반드시 데이터형일 필요는 없다. 아래와 같이 일반적인 값을 입력받아도 되고, 이전글처럼 디폴트값도 지정해 줄 수 있다. // 스택크기를 사용자로부터 입력받는다. template class Stack 클래스 템플릿 뿐 아니라 함수 템플릿에서도 사용이 가능하다 template T addValue(T const& elem) { return elem + VAL; } 이런 종류의 함수는 파라미터로서 많이 사용된다. std::transform(soruce.begin(), source.end(), dest.begin(), addValue); 함수템플릿 인스턴스는 오버로딩 함수들의 집합에 대한 이름일 뿐이며 현재표준에 따르면 오버로딩함수들의 집합은 템플릿 파라미터추론에 사용될 수 없다. 따라서 함..

기본 템플릿 인자

함수에서 기본인자값을 정해주는것과 비슷하게 템플릿의 데이터형도 디폴트로 미리 정의해 줄 수 있다. 이를 기본 템플릿 인자라고 한다. 그리고 언제나 ">"을 쓸때는 ">>" 을 주의해야 한다. 괄호가 두개 겹쳐있는것이 잘못하여 시프트연산자로 인식될 수도 있기 때문이다. #include #include template class Stack { private: CONT vecElem; public: void push(T const&); void pop(); T top() const; bool empty() const { return vecElem.empty(); } }; // 두개의 템플릿 파라미터를 가지므로 멤버함수정의시 모두 명시 template void Stack::push(T const& elem) {..

클래스 템플릿 특수화

클래스 템플릿을 특정 템플릿 인자로 특수화 할 수 있다. 이전글의 함수템플릿 오버로딩처럼 클래스 템플릿을 특수화 하려면 특정 데이터형에 맞게 구현해서 특정 데이터형에서 클래스 템플릿이 인스턴스화됐을때 잘못 동작할 수 있는 부분을 수정할 수 있다. 클래스 템플릿을 특수화 할려면 모든 멤버함수를 특수화해야한다. stack1.hpp template class Stack 위와 같이 만들었던 stack1을 특수화해서 stack2.hpp를 만들면 아래와 같다. stack2.hpp #include "stack1.hpp" template class Stack 즉, 클래스 템플릿을 특수화할 경우에는 template을 먼저쓰고 클래스를 언언하고, 그 뒤에 어떤 데이터혀으로 클래스 템플릿을 특수화 할 것인지를 기술한다. t..

시작부터 이러기야.ㅜㅜ.

비디오 튜토리얼을 보면 csg add 기능을 이용해서 bsp를 만드는데 난 이 버튼을 눌러도 아무 반응이 없었다. 이를 위한 해결은 아래 사이트를 보고 해결할 수 있었다. http://forums.epicgames.com/showthread.php?t=707138 결론은 아래와 같다. Press "Q" in the 3d window and see if that fixes it. 드디어 비디오 튜토리얼을 보며 따라할 수 있게 되었군.