IBets
>Попробуй языки с неявной типзацией, тот же Python или Js, и у тебя изменится отношение ко многим вещам
Ну я вообще-то работал на java и js, но не заметил в себе "изменения ко многим вещам". Я не говорю, что неявная типизация это зло. Но использование явной делает код более строгим и понятным, только и всего. Не надо каждый раз лазить и смотреть что за тип обьекта используется. В С++ это дело вкуса, по сути.
san
> Я не говорю, что неявная типизация это зло
предвижу новый срачь
foxes
> Вот именно, но необязательно если я буду использовать функцию
К чему это? Я не совсем понял, что этот код должен продемонстрировать, учитывая что спор идёт об отличиях foo(auto* a) от template<class T> foo(T* a)
foxes
> Я использую инлайны в шаблонах
Т.е. std::map, std::list, std::vector и т.п. вы всё же не используете?
san
> Ну я вообще-то работал на java и js
Погоди погоди. Если ты работал на js, то наверняка должен понимать этот код:
var summFunc = function (a, b) { return a+b; }; alert( summFunc( 4, 5) );
Ты его понимаешь?
MrShoor
Чего там понимать то? В любом случае я тут не собираюсь меряться пиписьками. Я задал вопрос, получил ответ, а прочие 6 страниц трепа к делу отношения не имеет. Личные предпочтения членов сообщества меня не особо интересуют. Я использую свой инструментарий но никому его не навязываю.
Вопрос исчерпан.
san
> Личные предпочтения членов
fixed
san
> Чего там понимать то? В любом случае я тут не собираюсь меряться пиписьками.
А причем тут меряться пиписьками? JS код, который я привел - мало чем отличается от кода из твого нульпоста. Ты же говоришь что ты знаешь JS?
MrShoor
Блин, я не про концепцию спрашивал, я встретил непонятный синтаксис в C++. Мне обьяснили что это. Все, вопрос закрыт.
foxes
> функция
> оператор
> лямбда
Только /O2 - это для msvc, для gcc -O2/-O3
san
Лямбду из буста не использовал, что ли? Да и в stl есть ее зачатки.
И работать было с ними мучительно, потому как изнасилованный компилятор тебе мешал, а не помогал. День-два могло не по делу в никуда вылететь, на борьбу с синтаксисом. Теперь есть штатные средства. Чем плохо?
На счет auto... Раньше ты писал нечто типа:
некое_длинное_описание* переменная = new некое_длинное_описание(параметры);
Теперь:
auto переменная = new некое_длинное_описание(параметры);
Полегчало?
А в шаблонах что творилось помнишь? Там вообще извраты были с множеством совсем лишних вынужденных typedef'ов.
Но пользоваться подобными средствами надо разумно. Избыточность описания чаще всего полезна. Теперь ты сам вправе регулировать степень этой избыточности.
И auto - никакая не динамическая типизация. Если компилятор не сможет синтаксически вывести и подставить на место auto конкретный тип, это будет ошибка.
Zab
> На счет auto... Раньше ты писал нечто типа:
>
> некое_длинное_описание* переменная = new некое_длинное_описание(параметры);
почему не через typedef ?
>Полегчало?
auto value = Func1() + Func2();
какой тип у value ты сразу видишь
innuendo
Ну уже видно множество обладающее аддитивностью. Далее по контексту станет ясен конкретный тип.
Надо давать такой пример
auto value = Func()
Но настоящий код выглядит так
auto pCommandList = pDevice->GetCommandList()
IBets
> Далее по контексту станет ясен конкретный тип.
спасибо, кэп
>Надо давать такой пример
>auto value = Func()
по такому примеру у меня никаких вопросов нету :)
pahaa
> читывая что спор идёт об отличиях foo(auto* a) от template<class T> foo(T* a)
Это твой спор.
pahaa
> Т.е. std::map, std::list, std::vector и т.п. вы всё же не используете?
В своих проектах? Да ни за что на свете! Я тебе больше скажу многие отказывается от std в крупных проектах.
foxes
> Я тебе больше скажу многие отказывается от std в крупных проектах.
в крупных это в какие же ?
Тема в архиве.