В Стандарте указаны подобные моменты
Для эксперимента:
#include <iostream>
void foo ( const int & )
{
std::cout << "foo ( const int & )" << std::endl ;
}
void foo ( int & )
{
std::cout << "foo ( int & )" << std::endl ;
}
int main()
{
struct A { int x; };
const A* a = new A();
//A* a = new A();
decltype(a->x) x3;
decltype((a->x)) x4 = x3;
foo(x3) ;
foo(x4) ;
}
И синтаксис
auto foo ( const T & x , const T & y ) - > decltype ( x+y )
{}
облегчает жизнь.
Лямбда-функции Идея хорошая, но опять реализация подкачала.
Нелогичный и неудобоваримый синтаксис. Впрочем указатели на
функции в нетривиальных случаях ни чуть не лучше...
Почему? Вроде бы всё логично + меньше головной боли с функторами.
С одной стороны вещь вроде полезная. Но с другой стороны очень
опасная в плане её неправильного понимания и применения.
Автомобиль тоже полезная вещь и опасная, если неправильно им пользоваться, но это никак никому не мешает.
Я вообще плохо понимаю этот приём: вводить в язык новые
синтаксические конструкции за реализацию которых отвечают
библиотечные шаблоны (в данном случае initializer_list<T>). Т.е.STL становится частью языка?
Ну если таким образом можно инициализировать массивы и POD-типы, то почему не предоставить возможность реализовать тоже самое в своем классе?
Редкостное по красоте собрание костылей, замешанное на
шаблонах и завязанное на STL. После прочтения пары статей на
Хабре, лично у меня нет никакого желания использовать этот
механизм.
Тьма разработчиков по всему миру использовали boost::thread, и были довольны. Вот он и перекочевал перекочевал в STL почти полностью. Почитайте книгу от автора библиотеки: http://www.ozon.ru/context/detail/id/17636939/ а не статьи на Хабре :)
For-цикл по коллекции
вот это для меня лишь синтаксический сахар, но он должен быть в языке.
Ключевые слова, которые как бы и не ключевые. Маразм крепчал?
например, final достаточно часто используется в качестве имени переменной, наверное, поэтому не стали вводить ключевое слово, хотя черт его знает зачем, надо у Страуструпа посмотреть, скорее всего он это объясняет :)
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
В Стандарте указаны подобные моменты
Для эксперимента:
И синтаксис
облегчает жизнь.
Почему? Вроде бы всё логично + меньше головной боли с функторами.
Автомобиль тоже полезная вещь и опасная, если неправильно им пользоваться, но это никак никому не мешает.
Ну если таким образом можно инициализировать массивы и POD-типы, то почему не предоставить возможность реализовать тоже самое в своем классе?
Тьма разработчиков по всему миру использовали boost::thread, и были довольны. Вот он и перекочевал перекочевал в STL почти полностью. Почитайте книгу от автора библиотеки: http://www.ozon.ru/context/detail/id/17636939/ а не статьи на Хабре :)
вот это для меня лишь синтаксический сахар, но он должен быть в языке.
например, final достаточно часто используется в качестве имени переменной, наверное, поэтому не стали вводить ключевое слово, хотя черт его знает зачем, надо у Страуструпа посмотреть, скорее всего он это объясняет :)