문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 C++/문법 (문단 편집) === 함수 === {{{#!syntax cpp // 매개 변수가 있고 반환값은 없는 함수 template void SetID(const T& obj, unsigned long long id) { obj.id = id; } // 사용자 정의 noexcept 명세를 사용하는 함수 inline constexpr size_t MySize = 10; int MyBuffer[MySize]{}; template constexpr int& Set(const int& value) noexcept(Index < MySize) // Index가 MySize보다 작으면 오류가 없다. { // 그러나 예외를 잡아내는 코드를 생성하지 않는다는 거지, 예외가 발생하지 않도록 하는 건 아니다. // 여전히 Index가 MySize 이상이면 오류가 발생한다. // 그냥 noexcept로 지정하면, 메모리 접근 위반이 발생했을때 예외 알림 대신 프로그램이 종료된다. return MyBuffer[Index] = value; } // 후속 반환형을 사용하는 함수 // 제약조건, noexcept 명세, 후속 반환형 사용 template requires std::copyable // constexpr auto CreateArray(const T& value) noexcept(std::is_nothrow_copy_constructible_v) // -> std::array { // std::array result{}; // std::ranges::fill(result, value); return result; // Return Value Optimization 적용 } }}}저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기