Форум программистов, компьютерный форум CyberForum.ru

Malloc vs new - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Реализовать собственный cin http://www.cyberforum.ru/cpp-beginners/thread1495377.html
Я короче хочу реализовать собственный cin. Просто оно медленно работает. И в этом проблема. typedef long long ll; struct Cin{ void operator >>(ll &x){ scanf("%lld", &x); } }Cin;
C++ Вывести те согласные буквы, которые входят в первое предложение и не входят во второе Всем привет помогите пожалуйста-Решить задачу с использованием множества: имеются два предложения, состоящие из русских букв, цифр и знаков препинания. Вывести те согласные буквы, которые входят в первое предложение и не входят во второе. http://www.cyberforum.ru/cpp-beginners/thread1495365.html
Вывод escape в консоль C++
короче не могу вывести в консоль \ cout << "( \"; что нужно добавить,изменить чтобы вывело?
Квадратное уравнение (найти ошибку) C++
Добрый день, решал вот такую задачку, однако она не проходит один из тестов, помогите найти ошибку. Также, как я понял, при отсутствии корней нужно вывести просто 0 - как-то умалчивается об этом в условии. Спасибо. Сложно найти человека, который любит решать однообразные задачки по математике. В последнее время школьникам стало легче, ведь с появлением компьютеров почти в каждой квартире стало...
C++ Обработка нажатия клавиши http://www.cyberforum.ru/cpp-beginners/thread1495324.html
нужно задать нажатию клавиши enter другие функции: private: System::Void textBox1_TextChanged_1(System::Object^ sender, System::EventArgs^ e) { if (Control::ModifierKeys == Keys::Enter) { //код этих новых действий } а у меня не работает. В чем ошибка?
C++ Шаблоны В файле есть такое определение template<int32 aMaxLength> class TTextBuffer: public MString { public: /** Construct an empty TTextBuffer object. */ TTextBuffer() { } /** Construct a TTextBuffer object from an 8-bit ASCII string. */ TTextBuffer(const char* aText) подробнее

Показать сообщение отдельно
DrOffset
7103 / 4244 / 952
Регистрация: 30.01.2014
Сообщений: 7,025
09.07.2015, 00:21
Цитата Сообщение от IGPIGP Посмотреть сообщение
Всегда. Поэтому если в стандарте в одном месте она называется операторной функцией, а в другом месте выражением для стилистического разнообразия, то это возможно (хотя и путает). Но если это делается для противопоставления, то это не лучший стандарт. Моё мнение.
О противопоставлении, вероятно, написано в статье (честно говоря я не ходил по ссылке). В стандарте никакого противопоставления нет. Одно включает другое. Вот в чем суть.
Но. Есть устоявшаяся терминология, которая диктуется официальным документом. Мы просто следуем ей и все.
Если мы будем называть функцию выделения памяти - operator new - выражением new, мы пойдем в разрез с этой терминологией и запутаем собеседника, который с этой терминологией знаком.
Цитата Сообщение от IGPIGP Посмотреть сообщение
Такая перегрузка скомпилируется
Здесь все-таки аналогия с оператором+ не совсем уместна. На функции аллокации накладываются целый свод требований
Кликните здесь для просмотра всего текста
1 An allocation function shall be a class member function or a global function; a program is ill-formed if an
allocation function is declared in a namespace scope other than global scope or declared static in global
scope. The return type shall be void*. The first parameter shall have type std::size_t (18.2). The first
parameter shall not have an associated default argument (8.3.6). The value of the first parameter shall be
interpreted as the requested size of the allocation. An allocation function can be a function template. Such
a template shall declare its return type and first parameter as specified above (that is, template parameter
types shall not be used in the return type and first parameter type). Template allocation functions shall
have two or more parameters.
2 The allocation function attempts to allocate the requested amount of storage. If it is successful, it shall
return the address of the start of a block of storage whose length in bytes shall be at least as large as
the requested size. There are no constraints on the contents of the allocated storage on return from the
allocation function. The order, contiguity, and initial value of storage allocated by successive calls to an
allocation function are unspecified. The pointer returned shall be suitably aligned so that it can be converted
to a pointer of any complete object type with a fundamental alignment requirement (3.11) and then used
to access the object or array in the storage allocated (until the storage is explicitly deallocated by a call
to a corresponding deallocation function). Even if the size of the space requested is zero, the request can
fail. If the request succeeds, the value returned shall be a non-null pointer value (4.10) p0 different from
any previously returned value p1, unless that value p1 was subsequently passed to an operator delete.
Furthermore, for the library allocation functions in 18.6.1.1 and 18.6.1.2, p0 shall point to a block of storage
disjoint from the storage for any other object accessible to the caller. The effect of indirecting through a
pointer returned as a request for zero size is undefined.36
3 An allocation function that fails to allocate storage can invoke the currently installed
new-handler function (18.6.2.3), if any. [ Note: A program-supplied allocation function can obtain the address of the currently
installed new_handler using the std::get_new_handler function (18.6.2.4). — end note ] If an allocation
function that has a non-throwing exception specification (15.4) fails to allocate storage, it shall return a null
pointer. Any other allocation function that fails to allocate storage shall indicate failure only by throwing
an exception (15.1) of a type that would match a handler (15.3) of type std::bad_alloc (18.6.2.1).
4 A global allocation function is only called as the result of a new expression (5.3.4), or called directly using the
function call syntax (5.2.2), or called indirectly through calls to the functions in the C++ standard library.
[ Note: In particular, a global allocation function is not called to allocate storage for objects with static
storage duration (3.7.1), for objects or references with thread storage duration (3.7.2), for objects of type
std::type_info (5.2.8), or for an exception object (15.1). — end note ]

, которым они должны следовать, чтобы программа оставалась well-formed. Для operator+ таких требований нет. Говорить о корректности программы, опираясь лишь на ее компилируемость, я считаю, не совсем верно.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru