На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
Страницы: (6) « Первая ... 4 5 [6]  все  ( Перейти к последнему сообщению )  
> как скопировать модификатор noexcept в свою функцию?
    Цитата Eric-S @
    Аналогичную ошибку я получаю, если напишу:

    static_assert( noexcept( (someclass< stub_object, false >()).~someclass() ), "noexcept destructor" );

    Для деструктора надо полностью имя прописывать

    ExpandedWrap disabled
      static_assert( noexcept( (someclass<stub_object, false>()).someclass<stub_object, false>::~someclass() ), "noexcept destructor" );


    Цитата Eric-S @
    reinterpret_cast< someclass< stub_object, false >* >( 0 )


    Здесь, наверное, лучше использовать std::declval<someclass< stub_object, false >>().........
      Цитата Олег М @
      Для деструктора надо полностью имя прописывать

      ExpandedWrap disabled
        static_assert( noexcept( (someclass<stub_object, false>()).someclass<stub_object, false>::~someclass() ), "noexcept destructor" );

      О! Не знал. Спасибо.
      Но объявление конструктора мне ломает независимость проверки деструктора.
      Если конструктор noexcept( false ), то провал.

      Добавлено
      Цитата Олег М @
      Здесь, наверное, лучше использовать std::declval<someclass< stub_object, false >>().........

      А вот так совсем чудненько
      ExpandedWrap disabled
        static_assert( noexcept( ( declval< someclass< stub_object, false > >() ).someclass< stub_object, false >::~someclass() ), "noexcept destructor" );
        Забил бы ты на эти деструкторы. Исключения в них это экзотика, а усилий тратишь кучу
          Цитата Олег М @
          Забил бы ты на эти деструкторы. Исключения в них это экзотика, а усилий тратишь кучу

          Уже всё. Отвлёкся вот на пару минут, для коррекции кода и написании ответа и пошёл заниматся другими делами.

          У меня в todo list большой список пунктов. А за эту ночь, я его сократил на 6 пунктиков.
          И ни один из них не косался деструкторов и noexcept.
            Цитата Eric-S @
            static_assert( noexcept( (someclass<stub_object, false>()).someclass<stub_object, false>::~someclass() ), "noexcept destructor" );

            О! Не знал. Спасибо.
            Но объявление конструктора мне ломает независимость проверки деструктора.
            Если конструктор noexcept( false ), то провал

            Это потому что ты перед вызовом деструтора вызывал конструктор
              Цитата Олег М @
              а усилий тратишь кучу

              Ну, зато вот всякое интересное узнал по ходу. Да ещё пару косвенных багов откопал, которые мог бы и не заметить. Так что нормуль, остался с двойным профитом и чувством удовлетворения.

              Добавлено
              Цитата Олег М @
              потому что ты перед вызовом деструтора вызывал конструктор

              Угу. Догадался сразу. Поэтому и проверку сделал.
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0295 ]   [ 17 queries used ]   [ Generated: 19.04.24, 08:27 GMT ]