디시인사이드 갤러리

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

갤러리 본문 영역

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

ㅆㅇㅆ(124.216) 2025.07.04 00:22:09
조회 82 추천 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/06/30 - -
AD 휴대폰 바꿀까? 특가 구매 찬스! 운영자 25/07/02 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45163 65
2869679 토르로 내파일에 있는 이미지 업로드해도 ㄱㅊ? 프갤러(59.14) 16:15 8 0
2869678 너무 억울하다 클라가 api설치를 못한 초보라서 [2] ㅆㅇㅆ찡갤로그로 이동합니다. 16:09 23 0
2869677 클라실행 안되서 시간더달라고 빌어놓고 ㅇㅇ(211.235) 16:00 23 2
2869676 머리가 너무 복잡하다. 그냥 다 놓고 싶다. [1] ㅇㅇ(223.38) 15:54 21 0
2869675 solid 원칙 소프트웨어 공학 배울땐 그정도로 중요한가 했었는데 [1] ㅇㅇ(118.235) 15:24 28 2
2869674 러스트 언어에 관련된 논의 중 혁신이라는 단어의 의미를 둘러싼 논쟁 루비갤로그로 이동합니다. 15:11 15 0
2869673 임베디드 입문했는데 ㅇㅇ(118.235) 15:09 20 0
2869672 러스트: 1.5. 생태계: 카고(Cargo)와 크레이트(Crates.io 루비갤로그로 이동합니다. 14:58 11 0
2869671 러스트 까는 이유 [1] 프갤러(61.75) 14:53 23 0
2869670 러스트: 1.4. 강력한 타입 시스템과 패턴 매칭 루비갤로그로 이동합니다. 14:36 19 0
2869669 이거 괜찮은편임? [3] 뜌땨땨땨갤로그로 이동합니다. 14:28 36 0
2869668 웹개발 입문자인데 flask 괜찮나요? [1] 프갤러(14.52) 14:25 27 0
2869667 형님들 어플 관련 오류 도와주십쇼 ㅠㅠ [2] 단팥빵갤로그로 이동합니다. 14:24 23 0
2869665 해선 틱사이즈이거 변동값이냐? ㅆㅇㅆ(124.216) 14:20 17 0
2869664 야 근데 디시 크롤링 하려고 켰는데 디시에 캡챠 추가됐노 ㅆㅇㅆ(124.216) 14:13 24 0
2869663 러스트: 1.3. 제로 코스트 추상화의 계보 루비갤로그로 이동합니다. 14:08 16 0
2869662 구글 ads 미팅중인데 [2] 뉴진파갤로그로 이동합니다. 14:00 33 0
2869661 아스카의 유일한 단점은 [1] 아스카영원히사랑해갤로그로 이동합니다. 13:59 37 0
2869660 정신병자 팀원 어떡하냐? ㅇㅇ갤로그로 이동합니다. 13:56 28 1
2869659 러스트: 1.2. 소유권(ownership), 빌림(borrowing), [4] 루비갤로그로 이동합니다. 13:54 30 0
2869658 본인 내일 C 입문함 각오하셈 [1] 프갤러(123.142) 13:54 33 0
2869657 업뎃) ‘완벽한 언어’라는 종교, 러스트 생태계를 돌아보다 루비갤로그로 이동합니다. 13:48 17 0
2869656 특정 갤러가 글쓰면 자동으로 댓글 달아주는 매크로 만들어줄사람? [3] 프갤러(58.120) 13:40 39 0
2869655 아 유니티 해야하는데 씨발 [2] 류도그담당(58.239) 13:37 33 0
2869654 납품 시간 늘려줬다고 기능 하나 더 넣어달라고 존나 떼쓰네 ㅆㅇㅆ(124.216) 13:35 28 0
2869652 소설 <롤리타> <내가 사랑하는 초등학생> 차이는? [1] 발명도둑잡기(118.216) 13:22 27 0
2869650 5시간 잤더니 졸리다 발명도둑잡기(118.216) 13:12 17 0
2869649 대기업 다니다가 50세 은퇴하고 자영업하고 느낀점 10가지 [1] 발명도둑잡기(118.216) 13:08 36 0
2869648 스카이데일리 데스크 사망 이유는? 발명도둑잡기(118.216) 13:02 26 0
2869647 ,,ԾㅂԾ,,;; ♥냥덩이♥갤로그로 이동합니다. 12:58 24 0
2869646 이효리(李孝利) 발명도둑잡기(118.216) 12:56 18 0
2869645 트럼프-머스크 갈등 재점화…머스크 "신당 창당" 공세 발명도둑잡기(118.216) 12:55 19 0
2869644 1.1. 탄생 배경과 철학: 왜 러스트인가? [1] 루비갤로그로 이동합니다. 12:52 28 0
2869642 SAP좀 탐나네 [3] 개멍청한유라갤로그로 이동합니다. 12:49 40 0
2869640 부모님께 효를 다하자 [5] 개멍청한유라갤로그로 이동합니다. 12:45 34 0
2869639 백엔드인가 저기 갤러리 좀 공격적이네 [2] 프갤러(118.235) 12:44 42 0
2869636 금서 [3] 발명도둑잡기(39.7) 12:19 30 0
2869632 [SAP Korea] 2025 SAP CODE 아카데미 1기 모집 (~8 프갤러(14.32) 12:13 43 0
2869631 오랜만에 고기를 사들고 [6] 개멍청한유라갤로그로 이동합니다. 12:11 37 0
2869630 평범한 국내 중소이면서 왜 코딩테스트를 자꾸 영문으로 보내 [8] 프갤러(110.13) 12:09 54 0
2869629 [메가존클라우드] DevOps 아키텍트 SecOps 채용연계형 국비지원 [1] 교육운영팀갤로그로 이동합니다. 12:08 30 0
2869627 It트렌드는 어디어디보심? [2] ㅇㅇ갤로그로 이동합니다. 11:45 37 0
2869626 내 알리익스프레스 계정 정지 이유가 보안상의 이유라는데 발명도둑잡기(118.216) 11:09 30 0
2869625 이런... 운이 나쁘시군. 마침 이 몸이 화장실에 왔을 때 러까하다니 [3] 프갤러(218.154) 11:04 43 0
2869624 ms도 버린 러스트 왜 빠는지 모르겠네 [2] 프갤러(211.234) 10:58 38 0
2869623 섹스가 지겹다 [3] 아스카영원히사랑해갤로그로 이동합니다. 10:43 58 0
2869621 러까 저능아들 운 좋은 줄 알아라 [1] 프갤러(218.154) 10:12 44 1
2869620 그냥 작은판에서 성공(경제적 성공은 아님) 을 맞은 사람이 [2] 프갤러(175.208) 09:59 64 3
2869619 금요일에 일 추가로 시키진 않겠지 [1] 아스카영원히사랑해갤로그로 이동합니다. 09:30 29 0
뉴스 재미가 피어나는 예꽃재 마을 (실화탐사대) 디시트렌드 07.03
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2