Вообще никогда
Понял. Спасибо
На самом деле можно, они называются лямбда-функции, и выглядит это как-то так: #include <iostream> int main() { auto Sum = [](int a, int b) -> int { int result; result = a + b; return result; }; std::cout << Sum(5, -2) << std::endl; return 0; }
auto и std я еще не знаю за что отвечают так что пока рано, но спасибо
std знать нужно)))
Наизусть, от корки до корки /S
Представь себе, что std - это такая большая коробка, в которой есть огромное множество самых разных механизмов, и у каждого из механизмов есть своё название. Некоторые из механизмов ты уже знаешь: cin, cout, endl, ну и может что-нибудь ещё. И когда ты пишешь: using namespace std; ты буквально берёшь все механизмы из коробки и высыпаешь их на свой рабочий стол, но вот проблема, этих механизмов очень большое множество, и твой стол буквально забит ими, тебе сложно ориентироваться в своём рабочем пространстве, и в результате время конструирования твоего собственного механизма гораздо увеличивается, и вот тебя посещает идея: я не буду высыпать все механизмы из коробки на стол, вместо этого я могу брать только те механизмы, которые мне нужны, делать это соответственно я могу двумя способами: 1) выложить те механизмы, которые будут использоваться на стол 2) по мере потребности брать нужные механизмы из коробки, а после использования класть их обратно ... Собственно в этом и вся суть Первый вариант использования - это using название_коробки::название_механизма; using std::cin; using std::cout; И далее эти механизмы можно спокойно использовать 2-й вариант - писать напрямую: название_коробки::название_механизма; std::cin std::cout std::endl etc.
А зачем постоянно писать этот std, если получается что using namespace std это не высыпать все механизмы на стол, а положить коробку рядом, и просто доставать по мере необходимости
using namespace std засоряет твой бинарник ненужным кодом, а его там предостаточно, уж поверь
Что есть бинарник? Бинарный код?
Грубо говоря, это файл с инструкциями для процессора
К тому же бывают ситуации, когда у тебя несколько "коробок", и в этих "коробках" есть "механизмы" с одинаковыми названиями Условно "коробка" abc и "коробка" bcd, и в обеих из них есть "механизм" dce и когда ты делаешь using namespace abc; using namespace bcd; у тебя случается конфликт имён, ведь в проекте оказалось два "механизма" с идентичными именами, и какой из них использовать не понятно
Ладно, тут я соврал, использование std:: нужно только для избежания конфликта имён
кстати, мне одному iostream кажется идиотским и странно работающим?
GNU'шное расширение так-то.
и никогда не делайте using namespace в хедерах
не тебе одному вообще можешь погуглить просто на эту тему, есть много хороших статей с критикой iostream
+1 Не зря же существуют всякие fast_io и прочее подобное
Доки к GCC говорят, что оно только в C, в плюсах его нет
Только лямбды
Лямбды - это не так, это по-другому
Обсуждают сегодня