1. C++ / Говнокод #22849

    −15

    1. 1
    2. 2
    3. 3
    operator void() {
        std::cout << "Cast to void!" << std::endl;
    }

    Выглядит заманчиво, даже компилится. Но никогда не вызывается, к сожалению.

    Запостил: bormand, 24 Апреля 2017

    Комментарии (24) RSS

    • SEO
      Ответить
      • http://ideone.com/K8lPyL
        чёйто не вызывается
        Ответить
        • оператор неявного преобразования, который можно вызвать только явно

          обожаю плюсы
          Ответить
          • http://ideone.com/hC7enk

            да. отстой.
            Ответить
            • не хочу перепощивать ответ из гейоверфловочки, там все довольно обстоятельно написано, со ссылками на параграфы Писания (как, кстати, правильно - псалмы? стихи?)
              Ответить
              • > как, кстати, правильно - псалмы? стихи?

                (10) заповеди или заветы (ильича).
                Ответить
              • Кодекс или рулбук.
                Ответить
          • Немного извращений разнообразят ваши взаимоотношения женой языком программирования.
            Ответить
        • Да ты молодец, дефекате
          Ответить
    • его даже запретить через = delete нельзя ;( Типа "юзай переменную, сука!"
      Ответить
    • Скастил тебя в воид, проверь
      Ответить
    • Почему static_cast<void>(bar) работает а reinterpret_cast<void>(bar) не компилируется?
      prog.cc:9:50: error: invalid cast from type 'foo' to type 'void'
       void baz(foo f) { return reinterpret_cast<void>(f); }
      Ответить
      • Хотя ясно, у static_cast явно написано:
        If new_type is the type void (possibly cv-qualified), static_cast discards the value of expression after evaluating it.

        Теперь разобраться с const_cast
        Ответить
      • Пилять,
        static_cast<const volatile void>(f);

        ... выглядит сурово
        Ответить
        • Неизменно изменчивая пустота...
          Ответить
        • По идее, можно даже вернуть это из void функции, чтобы совсем запутать читателя.
          Ответить

    Добавить комментарий