+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
#ifdef _MSC_VER
# if ( _MSC_VER <= 1800) // MSVC 2012 / 2013
typedef std::vector<char>& vector_ref;
# else
typedef std::vector<char>&& vector_ref;
# endif
#else
typedef std::vector<char>&& vector_ref;
#endif
auto func = std::bind([this](vector_ref v) { /* ... */ }, std::placeholders::_1);
тут говна вагон и маленькая тележка
Во-первых, версии студии, компилятора студии и _MSC_VER всегда разные. Сложно даже представить человека который решил "а давайте распространять компилятор по версии SDK, а проверять по левому числу, не являющемуся ни тем ни другим?"
Во-вторых, поддержка c++11 в msvc 2012/2013 удручает. В 2012 нет даже type aliases, потому и typedef.
В-третьих, кривая реализация bind (rvalue-версия не соберется в студиях 12/13, lvalue - в более поздних).
Запостил: Antervis,
11 Сентября 2017
j123123 12.09.2017 08:53 # 0
На кой хер поддерживать разные вижуалстудии? Почему бы например не поддерживать только самую последнюю и GCC(mingw)?
>Во-вторых, поддержка c++11 в msvc 2012/2013 удручает. В 2012 нет даже type aliases, потому и typedef.
Ну это ничего, можно напихать #ifdef и сделать две версии - одну с type aliases, другую с typedef.
>В-третьих, кривая реализация bind (rvalue-версия не соберется в студиях 12/13, lvalue - в более поздних).
Даже не знал что в говновизуалстудиях такой пиздец творится.
Но ничего, я считаю что все правильно, плюсобляди должны страдать
defecate-plusplus 12.09.2017 11:11 # −1
Потому что далеко не каждая контора обновляет парк IDE каждый год - это так-то денег стоит, и немало.
j123123 21.09.2017 14:08 # 0
j123123 21.09.2017 14:15 # +1
“НЕ ДЕЛИ – НЕ ПРИДЕТСЯ ДЕЛИТЬСЯ”. Оно почти напрямую следует из предыдущего правила. Человек, приходя к Вам в магазин, очень обеспокоен количеством чего-либо. Когда он видит цену, он обеспокоен количеством его личных денег. Поэтому, если Вы будете продавать программу по частям, он купит у Вас часть, причем наименьшую. Остальное будет пылиться у вас на полке. И вам придется уволить программистов, которые это писали. Поэтому ПРОДОВАЙТЕ ВСЕ СКОПОМ. Наш гамбургер является неотъемлемой частью Кока-колы. “ЭМЭСДОС” был неотъемлемой частью ПК ИВМ. А “Основняк” частью “ЭМЭСДОС”. В результате за год, я получил 3 миллиона людей готовых с руками оторвать книги по “ЭМЭСДОС” и по “Основняку”. Другой пример. Моя офисная программа. До этого существовало отдельно и редакторы, и электронные таблицы, и многое другое. Я все это объединил и в сумме этот комплект стоил меньше, чем общая цена отдельно существующих компонентов. В результате, покажите мне ПК, где нет моей программы. Еще пример, наш пакет “Студия”. В него мы запихнули “Це++”, “Основняк”, СУБД, документацию разработчика программ и драйверов, а также отладчик критических ошибок ОС и многое другое. И последний пример. Это меня спасло. В конце 1996 года мне пророчили финансовый крах. Дело в том, что я не очень серьезно воспринимал Сеть и ее небезопасный протокол. В то время как, компания “Солнечные микросистемы” разработала для нее язык, а компания “Шкаф” переделала свой старый проект “Мозаика” для модемных клиентов с поддержкой этого языка. Их продажи стали расти. Мои падать. Но я победил за один месяц! Я выпустил ПАТЧ для ОС, для “Офиса” и для других продуктов. Куда я запихнул, то, что сделали эти умники. А так как это патч, то сделал я это бесплатно. И дальше стал «продавать» бесплатно. “НЕ ДЕЛИ – НЕ ПРИДЕТСЯ ДЕЛИТЬСЯ” и я снова на вершине. Я продаю МОНОЛИТЫ. Никаких кирпичей.
Antervis 21.09.2017 17:08 # +2
FrauSchweinhund 21.09.2017 22:40 # 0
SemaReal 25.09.2017 14:21 # 0
Antervis 12.09.2017 11:43 # −1
Надо поставлять библиотеки вместе с устройствами. Кому-то для 12-й студии, кому-то для 17-й. Вот с gcc/mingw можно и только последнюю версию поддерживать, они бинарно обратно совместимы (да и forward за редким исключением тоже). Что плавно подводит нас к еще одной говнистой особенности студии: двух бинарно совместимых версий студии попросту не существует.
> Ну это ничего, можно напихать #ifdef и сделать две версии - одну с type aliases, другую с typedef.
Напомню: там #ifdef потому что иначе не работает
defecate-plusplus 15.09.2017 14:28 # 0
d_fomenok 15.09.2017 15:38 # 0
Теперь есть.
defecate-plusplus 20.09.2017 10:46 # +2
d_fomenok 30.09.2017 18:55 # 0