c++11 사용하시는 분이 아무도 없나요.....?

ozon1000의 이미지

몇일전에 글을 올렸는데.... 아무도 답변이 없으시네요....

진짜 c++11 extern template, user define attribute를 실제 사용해보신 분이 아무도 없으시나요...?!?!?!

익명 사용자의 이미지

답글 달릴때까지 기다려야만 하는 이유를 이해할 수는 없습니다만, 정 그래야 하겠다면 대신 검색해 드리지요.

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에서 익명으로 답글 달아드리며 활동하고 있습니다만, 전 답변 달기 재밌고 보람 있는 질문에만 답변합니다.
이런 식으로 "~라는 게 있다는데 뭔지 알려주세요/쓰는 법 알려주세요" 하는 식의 질문은 대체로 답글 쓰기는 피곤한 반면 별로 재미도 없고 보람도 없네요.
하나 더. 답변자들을 도발해서 답글을 얻어내려는 태도는 반감을 사기 쉽습니다.

ozon1000의 이미지

뭐, 제가 글을 딱히 디테일하게 쓰지못한 제 잘못이지요.
친절한 익명 유저분 감사해요.

달아주신 링크들은 이미 제가 전부 본것이에요.
그런데, 사용법이 모두 제각각이며 문법또한 서로 다르더라고요.

저는 실제 다른 개발자 분들이 어떻게 실무에서 사용하시는지 궁금했어요!

user define attribute 부분에서 달아 놓으신 링크또한 모두 봤고요^^
이 부분은 정말 사람들이 많이 사용하지 않는 부분이더라고요.

저는 실무에서 사용하시는 개발자분들의 스킬이 궁금했습니다.

질문글이 두서가 없고 도발적? 이었던 부분은 사과드립니다.

twinwings의 이미지

마지막 줄이 공감됩니다.

저도 답변 달려고 적었다가 다 지워버렸죠.

cwon의 이미지


저도 간단하게 말을 하기가 어려운 초보지만, 노력해보자면 -
예를 들어 어떤 템플릿 클래스가 있는데, 여러 파일에서 특화(specialization) 되어 사용되고 있다고 가정해 봅시다.
그럼 각 파일에서 템플릿을 만날때마다 중복해서 처리(instantiations) 해야 합니다.
그러나 extern 으로 선언해놓고, 궁극적으로 어딘가 같이 링크되는 파일에 선언을 한 번 해주면 - 중복해서 처리(instantiations)되는 과정이 제거가 되는거죠.
일반적인 변수나 클래스 처럼요. 딱 한번 처리하고, 나머지는 이 처리된 인스턴스를 컴파일-링크 단계에서 갖다 쓰도록 기능이 구현 되었다는 것 같습니다.

예제 보다는,
혹시 코드에 특정형으로 특화한 템플릿 클래스가 덕지 덕지 여러 곳에 삽입된 상태라면 사용을 고려해 보시면 될 것 같습니다.

ozon1000의 이미지

한마디로 정리하면 무분별한 중복 인스턴스화를 build-time에 방지하여 performance를 올려주는 것이지요.
답변 감사합니다.

세벌의 이미지

제목을 잘 쓰셔야 합니다. 질문하신 분이 원하는 것을 잘 찾아갈 수 있도록.
내용도 잘 쓰셔야 합니다. 낚시라면 제대로.
그런데 쉽지 않아요. 어떨 때는 도발하려는 게 아니었는데 그렇게 흘러가는 경우도...

사족.
몇일 아니고 며칠 입니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.