모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    ㅜ_ㅠ님의
    개인페이지입니다
    가입 : 13-11-29
    방문 : 369회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_20864
    작성자 : ㅜ_ㅠ
    추천 : 0
    조회수 : 543
    IP : 218.38.***.109
    댓글 : 2개
    등록시간 : 2017/06/20 10:37:20
    http://todayhumor.com/?programmer_20864 모바일
    C++에서 함수객체가 포함된 함수 템플릿을 명시적으로 호출할 수 있나요?
    <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">아래의 소스코드는 뇌를 자극하는 C++ STL교재의 예문인데요</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"> 책에는 For_each함수를 호출하는 문장에서 <b style="margin:0px;padding:0px;"><int*,void (*)(int)></b>가 삽입되어 있으므로 명시적으로 함수포인터가 포함된 함수 템플릿을 호출한다고 하는데요.</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><br style="margin:0px;padding:0px;"></div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"> <div style="margin:0px;padding:0px;">#include <iostream></div> <div style="margin:0px;padding:0px;">#include <string></div> <div style="margin:0px;padding:0px;">using namespace std;</div> <div style="margin:0px;padding:0px;">template<typename IterT,typename Func></div> <div style="margin:0px;padding:0px;">void For_each(IterT begin,IterT end,Func fp)</div> <div style="margin:0px;padding:0px;">{</div> <div style="margin:0px;padding:0px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>while(begin!=end)</div> <div style="margin:0px;padding:0px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>fp(*begin++);</div> <div style="margin:0px;padding:0px;">}</div> <div style="margin:0px;padding:0px;">template<typename T></div> <div style="margin:0px;padding:0px;">void Print(T data)</div> <div style="margin:0px;padding:0px;">{</div> <div style="margin:0px;padding:0px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>cout<<data<<" ";</div> <div style="margin:0px;padding:0px;">}</div> <div style="margin:0px;padding:0px;">int main()</div> <div style="margin:0px;padding:0px;">{</div> <div style="margin:0px;padding:0px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>int arr1[5]={1,2,3,4,5};</div> <div style="margin:0px;padding:0px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>For_each<b style="margin:0px;padding:0px;"><int*,void (*)(int)></b>(arr1,arr1+5,Print<int>);</div> <div style="margin:0px;padding:0px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>return 0;</div> <div style="margin:0px;padding:0px;">}</div></div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">그런데</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">그 다음 책에나온 소스코드는 함수객체를 For_each함수 템플릿에서 호출한 건데</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">컴파일이나 실행시 전혀 오류는 없지만 한번 위의 소스코드처럼 명시적으로 함수템플릿을 호출하고 싶은데요.</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">For_each(arr,arr+5,PrintFunctor<int>());</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span style="margin:0px;padding:0px;">For_each(arr1,arr1+3,PrintFunctor<string>("\n"));중에</span></div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">For_each(arr,arr+5,PrintFunctor<int>());을 명시적으로 호출하고 싶다면  For_each와 매개변수 사이에 어떤 문장을 넣어야 명시적으로 함수 템플릿을 호출할 수 있나요?</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span style="margin:0px;padding:0px;">책에는 전혀 나와있지 않아서 감을 잡을수 없지만 아무래도 </span><b style="margin:0px;padding:0px;"><int*,???></b>형식의 선언문을 써야 할 것 같은데 함수 템플릿에서 명시적으로 호출하기 위해서 함수객체는 어떤 선언문을 삽입해야 하는지 제 능력으로는 도무지 알수 없네요.</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">알고 계시는 분이 있으시면 답변 좀 해주시면 좋겟습니다.</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><br style="margin:0px;padding:0px;"></div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">#include <iostream></div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">#include <string></div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><br style="margin:0px;padding:0px;"></div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">using namespace std;</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"> </div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">template<typename IterT,typename Func></div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">void For_each(IterT begin,IterT end,Func fp)</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">{</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>while(begin!=end)</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>fp(*begin++);</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">}</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">template<typename T></div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">struct PrintFunctor</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">{</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>string sep;</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">public: </div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>explicit PrintFunctor(const string& s=" "):sep(s){}</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>void operator()(T data)</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>{</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>cout<<data<<sep;</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>}</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">};</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">int main()</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">{</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>int arr[5]={1,2,3,4,5};</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span><b style="margin:0px;padding:0px;">For_each(arr,arr+5,PrintFunctor<int>());</b></div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>cout<<endl;</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>string arr1[3]={"소","개","말"};</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span><b style="margin:0px;padding:0px;">For_each(arr1,arr1+3,PrintFunctor<string>("\n"));</b></div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span class="Apple-tab-span" style="margin:0px;padding:0px;white-space:pre;"></span>return 0;</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">}</div> <div><br></div>

    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    86
    세입자가 주방용품을 파손시키고 잠적했는데 보상 받을 수 없나요? ㅜ_ㅠ 18/12/03 13:29 52 0
    85
    보건소에서 당뇨검사하는데 검사항목이 잘못된거 같아요. [5] ㅜ_ㅠ 18/10/30 20:37 60 0
    84
    X-Japan이 부르는 존레논의 Imagine [2] ㅜ_ㅠ 18/04/12 23:49 31 3
    83
    담낭제거술 빨리 받아야 하나요? [2] ㅜ_ㅠ 17/11/25 16:13 55 0
    82
    택시기사가 고의적으로 막히는 길로 가는 경우도 있나요? [7] ㅜ_ㅠ 17/11/03 21:39 129 1
    81
    에어컨이 설치했는데 벽과 유격이 있는데 괜찮은건가요? [3] ㅜ_ㅠ 17/07/31 14:12 109 0
    80
    bool()이나 void()를 리턴하는 건 무슨 의미인가요? [2] ㅜ_ㅠ 17/07/14 15:01 61 0
    C++에서 함수객체가 포함된 함수 템플릿을 명시적으로 호출할 수 있나요? [2] ㅜ_ㅠ 17/06/20 10:37 57 0
    78
    40평 아파트에 에어컨 구입하려는데 어떤 제품을 사야 할까요? [6] ㅜ_ㅠ 17/06/15 21:05 58 0
    77
    c++ cout함수에 대해 질문 있습니다. [7] ㅜ_ㅠ 17/06/04 10:44 72 0
    76
    작은 텃밭에 어머니와 열무씨를 심었는데 [1] ㅜ_ㅠ 17/05/18 23:03 51 1
    75
    영어문장 해석 맞나요? [2] ㅜ_ㅠ 17/05/17 13:25 45 0
    74
    c언어의 논리연산자를 간결하게 쓸 수 없나요? [7] ㅜ_ㅠ 17/04/09 21:55 46 0
    73
    프로그램 메모리의 헥스값을 c언어의 코드로 해석할 수 있는 방법은 없나요 [9] ㅜ_ㅠ 17/02/22 21:32 41 0
    72
    c언어에서 아무 동작도 하지 않으려면 어떤 명령을 써야 하나요? [5] ㅜ_ㅠ 16/09/28 17:03 89 0
    71
    파일포인터는 다른 형의 배열에 저장 할 수 없나요? [3] ㅜ_ㅠ 16/09/15 12:08 48 0
    70
    과학고 카이스트애들은 수학 과학천재인데 [8] ㅜ_ㅠ 16/07/22 20:23 79 0/16
    69
    몇백자리가 넘는 10진수를 2진수로 바꾸는 c언어 코드는 없나요? [8] ㅜ_ㅠ 16/04/16 22:05 60 0
    68
    이 문장 영어로 표현어떻게 해야 할까요? [2] ㅜ_ㅠ 16/03/01 18:19 14 0
    67
    리눅스에서 윈도우 헤더파일로 프로그래밍을 할 수 있나요? [1] ㅜ_ㅠ 16/02/14 02:54 22 0
    66
    return 값 질문 [7] ㅜ_ㅠ 16/01/30 21:43 33 0
    65
    윗층에서 인테리어 하는 도중 우리집의 화장실의 타일이 떨어져 나갔는데 ㅜ_ㅠ 16/01/29 00:11 18 2
    64
    집에 균열이 계속 커지고 있는데 괜찮은가요? [13] ㅜ_ㅠ 16/01/20 22:30 42 4
    63
    이베이에서 질문을 했는데 판매자로부터 답이 않오네요. ㅜ_ㅠ 16/01/19 13:51 16 0
    62
    거래시 금액을 어느정도 환불받기로 했는데 계속 않주는 경우는 어떻게 하죠 ㅜ_ㅠ 16/01/13 22:15 11 0
    61
    혹시 한글잘하는 분 없나요? [2] ㅜ_ㅠ 16/01/12 09:30 37 0
    60
    c언어에서 #define V {} 를 쓸 필요가 있나요? [6] ㅜ_ㅠ 16/01/10 14:17 32 0
    59
    GCC 헤더파일에 있는 __builtin_의 의미는 무엇이죠? [3] ㅜ_ㅠ 16/01/01 18:07 24 0
    58
    노트북의 하드의 부팅은 원래 느린가요? [7] ㅜ_ㅠ 15/12/25 22:02 37 0
    57
    c나 c++언어에서 배열의 크기를 변수로 할 수 없나요? [6] 본인삭제금지 ㅜ_ㅠ 15/12/12 19:55 40 0
    [1] [2] [3]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈