디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

차트맨아 C++ 책좀 읽어라 왜곡하지말고 그냥

ㅆㅇㅆ(124.216) 2025.07.04 00:22:09
조회 121 추천 1 댓글 10
														



3db2d977abd828a14e81d2b628f1766e9dab11e6


24b0d121e09c28a8699fe8b115ef046f5d4b919eab



24b0d121e09c28a8699fe8b115ef046b6a6e933e




이 내용 가져오면서 ++98 스타일 긍정했다하는데


그게 아님.


애초에 RAII <- CPP 초창기때부터 함께했지만 대부분 안 지켰음


그래서 그걸 지키게 하기위해서 이동 시맨틱스 도입한게 C++11임


이펙티브 모던 C++이라는 이름답게 '모던 C++'를 가르키는 것.


저 내용 뭔지 설명해줌




24b0d121e09c28a8699fe8b115ef046a7e68e2cf


In C++98, exception specifications were rather temperamental beasts. You had to summarize the exception types a function might emit, so if the function’s implemen‐ tation was modified, the exception specification might require revision, too. Chang‐ ing an exception specification could break client code, because callers might be dependent on the original exception specification. Compilers typically offered no help in maintaining consistency among function implementations, exception specifi‐ cations, and client code. Most programmers ultimately decided that C++98 exception specifications weren’t worth the trouble


->예외명세는 까다롭다. 그리고 클라이언트 코드 깨질 수 있다. 호출자가 예외명세에 의존하고 있었을 가능성이 높아서,

클라이언트 코드 간의 일관성을 전혀 자동으로 보장해주지 않았다


결국 대부분의 프로그래머는 C++98 예외 명세는 사용할 가치 없다고 판단함




24b0d121e09c28a8699fe8b115ef0468e1acecb2


During work on C++11, a consensus emerged that the truly meaningful information about a function’s exception-emitting behavior was whether it had any. Black or white, either a function might emit an exception or it guaranteed that it wouldn’t. This maybe-or-never dichotomy forms the basis of C++11’s exception specifications, which essentially replace C++98’s. (C++98-style exception specifications remain valid, but they’re deprecated.) In C++11, unconditional noexcept is for functions that guarantee they won’t emit exceptions.


->C++11 에서는 상황이 달랐음. 

흑백으로 나눠서 이진 구분을 하게함


즉 C++98 스타일의 예외명세는 문법적으로 유효하나, 더이상 권장되지 않는다.




24b0d121e09c28a8699fe8b115ef046c64f92a4c98



noexcept는 예외를 던지지 않는다는걸 선언하는 방시깅고


c++11 에서는 noexcept 함수가 절대 예외를 발생시키지 않음을 보장함


어떤 함수에서 noexcept를 선언할지 여부가 '인터페이스' 설계의 핵심이라는 걸 보여주는 내용임


그래서 C++98식으로 하라는게 아니라


가능한한 noexcept를 선언해서 모던 C++ 식으로 하되


어쩔 수 없는 상황에서 예외 던지고, C++98식으로 안전 보장하라는거임




24b0d121e09c28a8699fe8b115ef046f5d499a99a1


C++11에서는 copy대신 move를 쓰는게 자연스러운 최적화다(이또한 내가 한 말)


기존 C++98 코드들은 push_back이 강한 예외 안전성을 보장한다나는 가정하에 작성되었지만,


C+11 구현체들은 복사 move로 교체하려면 해당 move 연산이 절대 예외를 던지지 않는다는 사실을 알아야한다라고 설명함



따라서 이전 내 설명대로


C++11 이상으로 '모던'하게 짜라는거지 C++98 내용 따르라는 말이 아니다,



추천 비추천

1

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
AD 디지털 액세서리 기간한정 세일! 운영자 25/07/11 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45388 65
2871066 Github 갤러리 31일 차단 당했다. 발명도둑잡기(118.216) 01:19 6 0
2871065 도스에서 vesa vbe 지원하게 에뮬레이션 발명도둑잡기(118.216) 01:16 1 0
2871064 몸에서 여드름이 나는 이유는 로션을 안써서래.. ㅇㅇㅇㅇ(121.126) 00:50 8 0
2871063 전국민 다 아는데 서로만 모르는 관계 발명도둑잡기(118.216) 00:49 8 0
2871062 요즘 모기가 잘 안 보이는 이유 [2] ♥천상천하유아독존경화수월냥덩♥갤로그로 이동합니다. 00:46 15 0
2871061 모기인줄 알고 잡았더니.. [4] ♥천상천하유아독존경화수월냥덩♥갤로그로 이동합니다. 00:41 20 0
2871060 외국인 혐오선동 규탄 집회 발명도둑잡기(118.216) 00:28 9 0
2871058 나는 일본 만화풍 얼굴만 봐도 짜증이 확 나지만 발명도둑잡기(118.216) 00:13 13 0
2871057 프로미스 상표권 관련 팩트 ㅇㅇ(175.223) 00:09 24 0
2871056 깃허브 프로젝트 setting 어디서 함? 프갤러(180.231) 00:06 9 0
2871055 냥덩이에게 팩폭 일침 발명도둑잡기(118.216) 00:05 13 0
2871054 오늘은 제로 카피 공부하다 자야긋다 ㅆㅇㅆ찡갤로그로 이동합니다. 00:02 15 0
2871053 한녀에게 오염된 모모링이 천연 귀여움을 잃어버리는 과정.. ㅠㅅ ㅠ.. [3] ♥천상천하유아독존경화수월냥덩♥갤로그로 이동합니다. 00:00 14 0
2871052 한국의 미래 <엑소더스 재팬> [1] 발명도둑잡기(118.216) 07.11 10 0
2871051 러스트는 개발의 즐거움을 포기하게 만드는 언어다 루비갤로그로 이동합니다. 07.11 13 0
2871049 림월드 같은 시뮬겜 만들기 어렵나 [1] 뉴진파갤로그로 이동합니다. 07.11 19 0
2871048 허니패밀리-남자 이야기 [1] 발명도둑잡기(118.216) 07.11 11 0
2871047 그리스 고대 원형극장 소리 발명도둑잡기(118.216) 07.11 10 0
2871046 59.14 임마 빡고수네 [9] ㅆㅇㅆ(124.216) 07.11 57 0
2871045 현존하는 모든 운영체제 뚫는 밀리터리 그레이드 백도어 취약점 [1] 발명도둑잡기(118.216) 07.11 25 0
2871044 러스트 빠돌아 내가 2022년, 2023년 뭐라 했냐. 인생 낭비라 했지 [3] 루비갤로그로 이동합니다. 07.11 20 0
2871043 무자막 케이온 정주행 수련 on 아스카영원히사랑해갤로그로 이동합니다. 07.11 14 0
2871042 나님 누엇어양⭐+ [1] ♥천상천하유아독존경화수월냥덩♥갤로그로 이동합니다. 07.11 17 0
2871041 dbus 소스코드 봤어? 내부적으로 SO_PEERCRED 사용하잖아. 루비갤로그로 이동합니다. 07.11 14 0
2871040 농부가 된 임베디드 프로그래머 [1] 발명도둑잡기(118.216) 07.11 16 0
2871039 제미니 교육시키는 중 ㅎㅎ ㅁㅌ겟다 루비갤로그로 이동합니다. 07.11 12 0
2871037 나님 소통합니당 질문질 받웅⭐+ [1] ♥천상천하유아독존경화수월냥덩♥갤로그로 이동합니다. 07.11 18 0
2871036 나님 왤케 특별하실깡? ♥천상천하유아독존경화수월냥덩♥갤로그로 이동합니다. 07.11 15 0
2871035 한가인이 남편에게 절대 하지 않는다는 것 발명도둑잡기(118.216) 07.11 17 0
2871034 네, 오늘 다국어 입력기 설계를 주제로 나눈 대화를 요약해 드리겠습니다. [1] 루비갤로그로 이동합니다. 07.11 32 0
2871033 돌대가리 제미니.. 궤변을 늘어놓네 [1] 루비갤로그로 이동합니다. 07.11 27 0
2871032 보통 TCP 4계층에서 바이트 기반이라고 표현하지 않나 [2] ㅆㅇㅆ(124.216) 07.11 41 0
2871031 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 07.11 17 0
2871030 골때리는 제미니 ㅎㅎ 루비갤로그로 이동합니다. 07.11 17 0
2871028 윈도우, 아이폰, 안드로이드폰에 주기적으로 스크린샷 찍어서 본사로 전송능 발명도둑잡기(118.216) 07.11 21 0
2871026 제로카피의 개념을 잘못 이해하고 있는듯 [8] 프갤러(59.14) 07.11 54 1
2871025 앱 출시하는거 너무 고통스럽다 [1] 프갤러(121.162) 07.11 27 0
2871024 노트북에 리눅스 세팅해서 사용한지 몇주 되었는데 [2] 프갤러(221.167) 07.11 25 0
2871023 "재벌도 요구르트 뚜껑 핥아먹냐"는 글 내가 일기에 최초로 쓴 사람이다 [2] 발명도둑잡기(118.216) 07.11 16 0
2871022 함수스택 제대로 쓸 줄 모르면 c나 cpp 만지면 안되는구나 [2] ㅇㅇ(118.235) 07.11 36 0
2871021 내가 컴딸배였구나 [2] 개멍청한유라갤로그로 이동합니다. 07.11 23 0
2871019 회사에서 모든 AI 서비스 다 결제해준단다 [1] 프갤러(211.234) 07.11 55 0
2871018 프로그래머의 도구 같이 나눔해봐용 [1] 익명의따당이갤로그로 이동합니다. 07.11 36 0
2871017 챗티씨 모바일웹 이미지 업로드 막아놨더라 헬마스터갤로그로 이동합니다. 07.11 21 0
2871014 개발자 <<< 비전공자, 전공자 차이 심함? [3] 프갤러(210.205) 07.11 57 0
2871013 형님들 api키는 어떻게 쓰는건가요 [1] ㅇㅇ(124.51) 07.11 40 0
2871012 소딸배와 중딸배가 싸워요 [10] 개멍청한유라갤로그로 이동합니다. 07.11 61 0
2871011 그래 나 오타쿠다 ㅇㅅㅇ... [3] 초코냥갤로그로 이동합니다. 07.11 35 0
2871009 "윤석열 외환죄 입증 불가? 1983년 '간첩죄처벌' 대법원판례 발명도둑잡기(118.235) 07.11 14 0
뉴스 밀레나, 오늘(11일) 첫 정규앨범 'Where to Begin' 발매! 전곡 작사·프로듀싱 참여 디시트렌드 07.11
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2