0

Есть файлы:

/*A.hpp для объявления*/
void sum();

/A.inl для определения/ void sum(){/что-то/};

Не очень понимаю, в каком файле ставить noexcept, то есть я уверен что исключений не будет, а так же понимаю что правильнее будет поставить в объявлении void sum() noexcept; и после в определении void sum() noexcept {/*что-то*/};.

Допустим с inline понятно. Если я поставлю в файле определения inline, то я попрошу компилятор встроить его в объявление. А если вставлю inline соответственно в объявлении, то компилятор мб встроит его когда буду вызывать уже где-то. Тут вопросов нету. (с inline просто пример,тут мне понятно)

вопрос 1 Куда мне вставлять noexcept, в объявление или в определение? Выбираю ответ и туда и туда, но тут я не оч уверен Х)

вопрос 2 Почему видя проекты написанные недавно, я замечаю что noexcept появляется очень редко или в прицепи его вообще нету. Ведь если я уверен что точно не будет исключения, почему не ускорить выполнение спамя noexcept везде где возможно? (речь сейчас о моментах где уверен что не упадёт приложение)

бонус-вопрос Много чего видел и в этом многом часто используют разные форматы для разделения, оценил, удобно. Но несёт ли какой-то скрытый посыл использование формата .inl (конкретно этого формата) ? (Спасибо @user7860670 подтолкнул на ответ,как я понял Нет не несёт скрытого смысла Вопрос отпрадает)

Иногда попадаются такие тонкости и хз где находить подобное, вроде пишут, но не заостряют внимания на мелочах =)

Bobs1970
  • 172
  • задавайте один вопрос в вопросе, причем 2 - дубликат https://ru.stackoverflow.com/questions/812038/%d0%9a%d0%b0%d0%ba-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d0%b5%d1%82-noexcept-%d0%b2-c/812045#812045 , 3 - дубликат https://ru.stackoverflow.com/questions/876163/c-%d0%a0%d0%b0%d0%b7%d0%bd%d0%b8%d1%86%d0%b0-%d0%bc%d0%b5%d0%b6%d0%b4%d1%83-%d0%b7%d0%b0%d0%b3%d0%be%d0%bb%d0%be%d0%b2%d0%be%d1%87%d0%bd%d1%8b%d0%bc-%d0%b8-%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%bc-%d1%80%d0%b5%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b8/876207#876207 – user7860670 Oct 12 '21 at 13:02
  • @user7860670 Вы читали что я написал? Прочтите пожалуйста) Я не спрашивал как работает noexcept. Так же,я написал что понимаю для чего .inl в данном коде и спросил есть ли скрытый смысл – Bobs1970 Oct 12 '21 at 13:10
  • 1
    ¿А вы читали, что я написал в тех ответах? Прочтите пожалуйста) Желательно даже несколько раз. – user7860670 Oct 12 '21 at 13:16
  • @user7860670 2 раза перечитал то что Вы написали,а так же до заданного вопроса видел эти вопросы, но не смотря на это ответа в них не нашёл. Ибо мне понятно что такое noexcept и .inl мне не понятны тонкости языка и их я написал в вопросе. Гуглил, того что нужно мне не нашёл, конечно я могу и без этого обойтись и писать не зная + лишь с догадками, но я хочу стать умнее. – Bobs1970 Oct 12 '21 at 13:19
  • @user7860670 Блин) Вот написать ответ на 3тий вопрос "нет скрытого смысла" трудно? Да, Вы правы, 3тий вопрос отпал, я думал использование .inl несёт что-то за собой помимо того что писал выше, спасибо что подтолкнули) – Bobs1970 Oct 12 '21 at 13:29
  • 1
    вопрос 1 - в двух местах. вопрос 2 - не нужно его цеплять везде. можно травмировать свою программу. Но вот в конструкторах и операторах перемещения очень желательно. Почему не используют? да потому что пишут на с++98 в лучшем случае. – KoVadim Oct 12 '21 at 13:39
  • 2
    вопрос 1 - то ли в C++11, то ли ранних версиях компиляторов с поддержкой C+11 можно было писать noexcept только в объявлении или в определении. Сейчас noexcept является частью типа, он должен быть и в объявлении, и в определении. – Ariox Oct 12 '21 at 17:09
  • 1
    "Иногда попадаются такие тонкости и хз где находить подобное, вроде пишут, но не заостряют внимания на мелочах =)" -- это верно замечено, самым правильным выводом будет забить на кресты и использовать другие языки – avp Oct 12 '21 at 18:04
  • @KoVadim травмировать? это как? Отпишите ответом,я поставлю галку) – Bobs1970 Oct 13 '21 at 06:33
  • 1
    @avp - и какой же язык теперь модный, в котором нет "тонкостей"? – KoVadim Oct 13 '21 at 06:41
  • @KoVadim, я предпочитаю старый добрый Си (в гнусном варианте) – avp Oct 15 '21 at 16:25
  • Си хорош. Вот только большинство, кто пишет, что знает с/с++ не знает, ни того, ни другого. – KoVadim Oct 15 '21 at 17:02

0 Answers0