여담:
kldp 프로그래밍 QnA에서 익명으로 답글 달아드리며 활동하고 있습니다만, 전 답변 달기 재밌고 보람 있는 질문에만 답변합니다.
이런 식으로 "~라는 게 있다는데 뭔지 알려주세요/쓰는 법 알려주세요" 하는 식의 질문은 대체로 답글 쓰기는 피곤한 반면 별로 재미도 없고 보람도 없네요.
하나 더. 답변자들을 도발해서 답글을 얻어내려는 태도는 반감을 사기 쉽습니다.
저도 간단하게 말을 하기가 어려운 초보지만, 노력해보자면 -
예를 들어 어떤 템플릿 클래스가 있는데, 여러 파일에서 특화(specialization) 되어 사용되고 있다고 가정해 봅시다.
그럼 각 파일에서 템플릿을 만날때마다 중복해서 처리(instantiations) 해야 합니다.
그러나 extern 으로 선언해놓고, 궁극적으로 어딘가 같이 링크되는 파일에 선언을 한 번 해주면 - 중복해서 처리(instantiations)되는 과정이 제거가 되는거죠.
일반적인 변수나 클래스 처럼요. 딱 한번 처리하고, 나머지는 이 처리된 인스턴스를 컴파일-링크 단계에서 갖다 쓰도록 기능이 구현 되었다는 것 같습니다.
예제 보다는,
혹시 코드에 특정형으로 특화한 템플릿 클래스가 덕지 덕지 여러 곳에 삽입된 상태라면 사용을 고려해 보시면 될 것 같습니다.
몇 번 검색하면 바로 나오는 문제를...
답글 달릴때까지 기다려야만 하는 이유를 이해할 수는 없습니다만, 정 그래야 하겠다면 대신 검색해 드리지요.
c++11 extern template:
레퍼런스는 뭐 적당히:
http://en.cppreference.com/w/cpp/language/class_template
http://en.cppreference.com/w/cpp/language/function_template
용례는 stack overflow에서 찾으면 금방 하나 나오는군요:
http://stackoverflow.com/questions/8130602/using-extern-template-c11
user define attribute:
아마 이걸 말씀하시는 거겠죠?:
http://en.cppreference.com/w/cpp/language/attributes
여담:
kldp 프로그래밍 QnA에서 익명으로 답글 달아드리며 활동하고 있습니다만, 전 답변 달기 재밌고 보람 있는 질문에만 답변합니다.
이런 식으로 "~라는 게 있다는데 뭔지 알려주세요/쓰는 법 알려주세요" 하는 식의 질문은 대체로 답글 쓰기는 피곤한 반면 별로 재미도 없고 보람도 없네요.
하나 더. 답변자들을 도발해서 답글을 얻어내려는 태도는 반감을 사기 쉽습니다.
ㅎㄷㄷ....
뭐, 제가 글을 딱히 디테일하게 쓰지못한 제 잘못이지요.
친절한 익명 유저분 감사해요.
달아주신 링크들은 이미 제가 전부 본것이에요.
그런데, 사용법이 모두 제각각이며 문법또한 서로 다르더라고요.
저는 실제 다른 개발자 분들이 어떻게 실무에서 사용하시는지 궁금했어요!
user define attribute 부분에서 달아 놓으신 링크또한 모두 봤고요^^
이 부분은 정말 사람들이 많이 사용하지 않는 부분이더라고요.
저는 실무에서 사용하시는 개발자분들의 스킬이 궁금했습니다.
질문글이 두서가 없고 도발적? 이었던 부분은 사과드립니다.
마지막 줄이 공감됩니다. 저도 답변 달려고 적었다가
마지막 줄이 공감됩니다.
저도 답변 달려고 적었다가 다 지워버렸죠.
Extern templates
저도 간단하게 말을 하기가 어려운 초보지만, 노력해보자면 -
예를 들어 어떤 템플릿 클래스가 있는데, 여러 파일에서 특화(specialization) 되어 사용되고 있다고 가정해 봅시다.
그럼 각 파일에서 템플릿을 만날때마다 중복해서 처리(instantiations) 해야 합니다.
그러나 extern 으로 선언해놓고, 궁극적으로 어딘가 같이 링크되는 파일에 선언을 한 번 해주면 - 중복해서 처리(instantiations)되는 과정이 제거가 되는거죠.
일반적인 변수나 클래스 처럼요. 딱 한번 처리하고, 나머지는 이 처리된 인스턴스를 컴파일-링크 단계에서 갖다 쓰도록 기능이 구현 되었다는 것 같습니다.
예제 보다는,
혹시 코드에 특정형으로 특화한 템플릿 클래스가 덕지 덕지 여러 곳에 삽입된 상태라면 사용을 고려해 보시면 될 것 같습니다.
맞습니다.
한마디로 정리하면 무분별한 중복 인스턴스화를 build-time에 방지하여 performance를 올려주는 것이지요.
답변 감사합니다.
제목을 잘 쓰셔야 합니다. 질문하신 분이 원하는 것을
제목을 잘 쓰셔야 합니다. 질문하신 분이 원하는 것을 잘 찾아갈 수 있도록.
내용도 잘 쓰셔야 합니다. 낚시라면 제대로.
그런데 쉽지 않아요. 어떨 때는 도발하려는 게 아니었는데 그렇게 흘러가는 경우도...
사족.
몇일 아니고 며칠 입니다.
세벌 https://sebuls.blogspot.kr/
댓글 달기