Size: a a a

2020 March 11

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
Language:
c++


Source:
#include<iostream>
using namespace std;
int main() {
 cout << (short)NULL;
 return 0;
}


Result:
0


Note:
cplusplus_gcc assumed, other valid options are cplusplus_clang, visual_cplusplus, you can be more specific next time.
Это implementation detail. Причём оба GCC и Clang здесь ведут себя некорректно, как мы выяснили
источник

p

polunin.ai in rust_offtopic
Error: 413 Request Entity Too Large
источник

p

polunin.ai in rust_offtopic
Лул
Попытался сравнить 0 и Null
источник

p

polunin.ai in rust_offtopic
Roman Proskuryakov
ох уж эти плюсовики с их приведением указателей к числам
А что-то не так? Я не плюсовик
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
в сишарпе нулл это нулл. И я тебе показал что 0 это _не_ нулл
Так, стоп. Ты спрашивал как запихнуть. Я запихнул тоже самое, но другого типа
источник

λ

λоλторт in rust_offtopic
red75prime
А типы сойдутся? А, должны вроде как. в этой ветке IO [a]. Для пустого списка do pure []. Ммм, как это сократить? Нет, не для меня это. Нужно вспоминать монадические правила и как этот do pure [] трансформировать.
mainWorker = fmap join 
 $ for (nonEmpty args) justIfScriptValid
 where
   justIfScriptValid nel@(h :| _) =
     bool Nothing (Just nel) <$> CmdRun.validScript h

вот так этот код приобретает более-менее читаемый вид более
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
Более того, нулл это даже не ноль
Так ты взял адрес у объекта, а не разыменовал
источник

Т8

Т-34 85 in rust_offtopic
Alex Zhukovsky
потому что это алгол
Лол. От алгола нихрена нет, но это алгол
источник

Т8

Т-34 85 in rust_offtopic
Alexander Krivitskiy
Эээ, а это часом не адрес объекта вывелся? Если несколько интов = null так спринтишь, чё будет?
Именно он
источник

Т8

Т-34 85 in rust_offtopic
Roman Proskuryakov
как будто по 0x0 ничего не может лежать
Разыменуй, посмотри. И потом расскажи, какие плюсы плохие
источник

A

Aleksandr Khristenko in rust_offtopic
red75prime
А типы сойдутся? А, должны вроде как. в этой ветке IO [a]. Для пустого списка do pure []. Ммм, как это сократить? Нет, не для меня это. Нужно вспоминать монадические правила и как этот do pure [] трансформировать.
Зачем в do pure [] писать do вообще?
источник

EG

Emmanuel Goldstein in rust_offtopic
Т-34 85
Разыменуй, посмотри. И потом расскажи, какие плюсы плохие
Я только что скидывал пример, где по 0x0 лежит валидное значение.
источник

Т8

Т-34 85 in rust_offtopic
Emmanuel Goldstein
То, что современные системы это не делают, это не правило, а совпадение
Пруф?
источник

EG

Emmanuel Goldstein in rust_offtopic
Вот он
источник

RP

Roman Proskuryakov in rust_offtopic
Т-34 85
Разыменуй, посмотри. И потом расскажи, какие плюсы плохие
лоль. на голой железке не пиши, дай написать про 0x0
источник

AK

Alexander Krivitskiy in rust_offtopic
Alex Zhukovsky
Но нулл все равно не 0x0
За вирт машиной в принципе любую константу можно использовать. За ОС нулл делают = 0, т.к. ОСи обычно не мапят нулевую страницу, чтобы ошибки ловить. Ну а без ОСи сам выдумывай, как будешь null хендлить.
источник

EG

Emmanuel Goldstein in rust_offtopic
Обычный современный линукс позволяет тебе положить корректное значение по адресу 0x0
источник

Т8

Т-34 85 in rust_offtopic
Emmanuel Goldstein
И это ещё более не гарантируется в C.
Лол
источник

Т8

Т-34 85 in rust_offtopic
Emmanuel Goldstein
> If a null pointer constant is converted to a pointer type, the resulting pointer, called a null pointer, is guaranteed to compare unequal to a pointer to any object or function.
И?
источник

EG

Emmanuel Goldstein in rust_offtopic
Единственное, что тебе гарантирует стандарт C про NULL — это то, что он не равен любому валидному указателю.
источник