디시인사이드 갤러리

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

갤러리 본문 영역

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

ㅆㅇㅆ(124.216) 2025.07.04 00:22:09
조회 166 추천 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
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 영포티룩도 멋지게 소화할 것 같은 40대 스타는? 운영자 25/10/27 - -
AD 할로윈 슈퍼위크~!! 운영자 25/10/23 - -
2870942 vale 언어 메모리 설명 발명도둑잡기(118.216) 07.11 76 0
2870941 러스트보다 쉽게 하고자 한다면 러스트만큼의 안전성을 보장할 수 없다 [1] 프갤러(218.154) 07.11 90 0
2870940 짱깨에 나라 넘어가는중 2재명 셰셰 ♥냥덩이♥갤로그로 이동합니다. 07.11 79 0
2870939 rust보다 쉽고 C++ 대체용으로 나왔다는 vale 언어 [1] 발명도둑잡기(118.216) 07.11 124 0
2870936 나 맨날 일 안함 [1] ㅇㅇ(211.235) 07.11 93 0
2870935 한껏 헤이해진 정의관 ♥냥덩이♥갤로그로 이동합니다. 07.11 72 0
2870934 공부시작 들어가자 [1] 노력하는자갤로그로 이동합니다. 07.11 97 0
2870932 보수 머리밭은 아직도 꽃밭? 선의의 경쟁이라니... 프갤러(121.172) 07.11 91 0
2870931 GPT 가 쌓인게많네 [2] 피자2021갤로그로 이동합니다. 07.11 127 2
2870930 챗GPT 참스승이네 [3] 피자2021갤로그로 이동합니다. 07.11 127 0
2870929 다가닥 다가닥 ㅇㅅㅇ [3] 헤르 미온느갤로그로 이동합니다. 07.11 87 0
2870928 그놈 kde 최신판 속도 비교 [2] 발명도둑잡기(118.216) 07.11 108 0
2870927 태연 ㅇㅅㅇ 헤르 미온느갤로그로 이동합니다. 07.11 66 0
2870926 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 07.11 69 0
2870925 마이크로소프트가 축구, 야구 게임도 팔았구나 발명도둑잡기(118.216) 07.11 50 0
2870924 사무실 선정리 어캐 해야 하냐? [2] illilj갤로그로 이동합니다. 07.11 92 0
2870922 양기 발산 발명도둑잡기(118.216) 07.11 75 0
2870920 나는조현병이야 나는내향적이야 [2] 손발이시립디다갤로그로 이동합니다. 07.11 88 0
2870916 웃흥~ ♥냥덩이♥갤로그로 이동합니다. 07.11 84 0
2870914 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ ♥냥덩이♥갤로그로 이동합니다. 07.11 71 0
2870910 이재명 이 인간이 공공의료 사고 나몰라한다. 넥도리아(223.38) 07.11 101 0
2870908 나 제모함. 사타구니 넥도리아(175.196) 07.11 78 0
2870906 부산 시민 20% 우울 불안 프갤러(183.101) 07.11 92 0
2870905 프갤망했노 ㅇㅇ(222.232) 07.11 79 0
2870903 노트북 추천좀 퍄퍄_갤로그로 이동합니다. 07.11 160 0
2870901 프리랜서도 결국은 비정규직 노동자인데, 창업해야하는데 ㅆㅇㅆ(124.216) 07.11 84 0
2870896 음기 충전 발명도둑잡기(118.216) 07.11 72 0
2870895 오늘의 발명 실마리: 레트로 게임기용 gmenu2x DOS용으로 포팅 [1] 발명도둑잡기(118.216) 07.11 72 0
2870894 리눅스를 윈도우95 처럼 꾸미 발명도둑잡기(118.216) 07.10 93 0
2870893 요즘 어셈다루다가 [2] 루도그담당(211.235) 07.10 129 0
2870892 술먹으면 보지 냄새 풍기면서 앵기는년들 왤케 많냐 [2] hrin(118.235) 07.10 131 0
2870891 네이버 오픈소스 가이드 발명도둑잡기(118.216) 07.10 117 0
2870890 직장 동료들 너무 무능하다.. [4] ㅇㅇ(121.162) 07.10 146 0
2870889 리버싱 접기로 함 [5] 루도그담당(58.239) 07.10 158 0
2870888 오늘도 책 한권 끝냈군. 내 조테로 문서 풍성해짐 [1] ㅆㅇㅆ(124.216) 07.10 91 0
2870887 매일매일이 한번이라도 실패하면 적자라서 힘들다 ㅆㅇㅆ(124.216) 07.10 82 0
2870886 아일릿 신보 들어본 결과 발명도둑잡기(118.216) 07.10 76 0
2870885 아스카야 프롬프트 엔지니어링 문서 추천해줌 [2] ㅆㅇㅆ(124.216) 07.10 86 2
2870884 [IT산업] Compile 될 수 있는 AI 와 AI 의 신뢰도.. [1] +abcd3421갤로그로 이동합니다. 07.10 104 0
2870883 디씨인싸이드 에러 발명도둑잡기(118.216) 07.10 68 0
2870882 3617번이라고한다 헬마스터갤로그로 이동합니다. 07.10 115 0
2870881 켄트백 그래도 페북 7년있었잖아. ㅆㅇㅆ(124.216) 07.10 72 0
2870880 나님 유튜브 시청하며 ai 공부중 [9] 아스카영원히사랑해갤로그로 이동합니다. 07.10 121 0
2870879 근데 지피티 쓰면 코드 못쓰게 되는게 당연한 수순임. 이건 어쩔수가 없어 [7] ㅆㅇㅆ(124.216) 07.10 189 1
2870878 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ [1] ♥냥덩이♥갤로그로 이동합니다. 07.10 94 0
2870877 아 이제 지피티 없이 개발 못하겠네.. [2] ㅇㅇ(175.197) 07.10 111 1
2870876 마갤은 취향 안맞아서 정갤에서 정신병 뽐내는게 좋아 [2] ㅆㅇㅆ(124.216) 07.10 79 0
2870875 다 깃허브갤로 이사갔네 [2] 프갤러(106.101) 07.10 120 0
2870874 2주동안 하던 문명 한판 끝냈습니다 [4] 아스카영원히사랑해갤로그로 이동합니다. 07.10 92 1
2870873 근데 보통 Cpp17 핵심 컨셉이 스트럭쳐 바인딩이라 [2] ㅆㅇㅆ(124.216) 07.10 98 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2