Mikhail
Точнее, то количество нового, что ты услышишь, не будет стоить твоих денег
Ну с одной стороны согласен, а с другой - ведь будет возможность попрактиковаться в некоторых вещах, о которых только читал, но не использовал (да и негде было использовать)
Oleg
private: struct private_tag{}; public: class_ctor(private_tag t); static maker() { return make_shared<class_ctor>(private_tag{}); } а так работае?
Да. Это выглядит как то, что @arseny предложил. Прикольный костыль, я сам до такого не догадался.
Mikhail
Советую почитать про новинки, послушать cppcon рассказы, да походить на конференции
Уже... Активно слежу и за cppcon и на встречи user group хожу. Не хватает практики, а для себя их выдумывать без какой-то отдачи, кроме поднятия скилла, тож не гуд.
Berkus
Да. Это выглядит как то, что @arseny предложил. Прикольный костыль, я сам до такого не догадался.
удобнее костыля вроде нет, а писать свой make_shared уж извините - я не для этого ждал стандартный.
Berkus
и желание писать на си отпадет само
Anton
)))
Anatoly
и желание писать на си отпадет само
хочешь изучить язык, напиши его компилятор :)
🐙 Antony
Привет всем! Не сочтите за рекламу, просто хочу спросить мнение прокачанных прогеров на плюсах. Сам уже 5 лет как в коммерческих разработках на плюсах не учавствую, только для себя в опен соурсных проектах свечусь, стараюсь от стандартов не отставать. Последнее время работаю с дот нетом, но хотелось бы в плюсы вернуться. Но понимаю, что много пропустил. Тут компания OTUS открывает набор на курсы по С++. Вроде программа не на джунов рассчитана. Вот думаю стоит на курсы эти записываться или нет. Курсы 40 тыс.р. стоят и длятся 5 месяцев. Не большие деньги, но и не малые. Может кто что слышал об OTUS? Может кто мнение свое скажет? Стоит оно того или нет, для освежения памяти?
Посмотрел на курс: * STL больше не называется STL :) * "Занятие 8: UML", "Занятие 26: РСУБД" - специально под себя готовят людей :) Но в этом нет ничего плохого Преподавателей не знаю, код их не видел
Anatoly
почему? я ожидаю здесь вызов копирующего конструктора, а копирующий конструктор не может быть шаблонным по определению.
@antoshkka Антон, а какие твои аргументы, что должен быть вызван шаблонный конструктор, а не копирующий?
Alexandra
Привет всем, а можно здесь делиться вакансиями? 🙂
Крылатый
Там написано: Вакансии - в лс @AlexFails.
Alexandra
Спасибо 🙂
Крылатый
Вакансииу нас тут: https://t.me/ProCxxJobs
Крылатый
Что видно в прикреплённом сообщении...
Alexandra
спасибо большое, я написала AlexFails, тогда напишу, если дадут добро 🙂
🐙 Antony
Привет всем! Не сочтите за рекламу, просто хочу спросить мнение прокачанных прогеров на плюсах. Сам уже 5 лет как в коммерческих разработках на плюсах не учавствую, только для себя в опен соурсных проектах свечусь, стараюсь от стандартов не отставать. Последнее время работаю с дот нетом, но хотелось бы в плюсы вернуться. Но понимаю, что много пропустил. Тут компания OTUS открывает набор на курсы по С++. Вроде программа не на джунов рассчитана. Вот думаю стоит на курсы эти записываться или нет. Курсы 40 тыс.р. стоят и длятся 5 месяцев. Не большие деньги, но и не малые. Может кто что слышал об OTUS? Может кто мнение свое скажет? Стоит оно того или нет, для освежения памяти?
Прошел тест на их сайте, в котором ряд примеров не компилируется, но надо дать ответ что будет в рантайме. На часть вопросов я не понял что требуется ответить (Выберите для бинарного поиска: может быть заменён на дерево, может быть OlogN, может быть O(N) для несортированного или OlogN для сортированного, массив должен быть сортированным, массив должен быть сортированными в обратном направлоении). Вместо результатов, и ответов где я ошибся выдалась заглушка: Благодарим за прохождения теста! С радостью сообщаем Вам, что уровень Ваших знаний достаточен для прохождения курса. Ждем Вас на занятиях! Перейти к оплате (кнопка) Я не впечатлён
Крылатый
Из тестов на плюсы неплохие такие у brainbench, но там несколько старые плюсцы. =)
🐙 Antony
@antoshkka Антон, а какие твои аргументы, что должен быть вызван шаблонный конструктор, а не копирующий?
Я на такую упячку натадлкивался давным давно, это было правильным поведением. Проверяется вот таким тестиком? template<typename T> void test(T&& val) { std::cerr << "test(T&& val)\n"; } void test(const int& val) { std::cerr << "test(const int& val)\n"; } int main() { int i = 0; test(i); // test(T&& val) }
Mikhail
Кстати, стало интересно попробовать пройти этот тест вообще ставя на угад)))
Mikhail
это не их цель, их цель побольше вас набрать
Вот и проверю. На авось ответы ща проставлю
🐙 Antony
Кстати, стало интересно попробовать пройти этот тест вообще ставя на угад)))
Лучше специально отвечая неверно начиная с 3его вопроса
🐙 Antony
Привет всем! Не сочтите за рекламу, просто хочу спросить мнение прокачанных прогеров на плюсах. Сам уже 5 лет как в коммерческих разработках на плюсах не учавствую, только для себя в опен соурсных проектах свечусь, стараюсь от стандартов не отставать. Последнее время работаю с дот нетом, но хотелось бы в плюсы вернуться. Но понимаю, что много пропустил. Тут компания OTUS открывает набор на курсы по С++. Вроде программа не на джунов рассчитана. Вот думаю стоит на курсы эти записываться или нет. Курсы 40 тыс.р. стоят и длятся 5 месяцев. Не большие деньги, но и не малые. Может кто что слышал об OTUS? Может кто мнение свое скажет? Стоит оно того или нет, для освежения памяти?
О, письмо прилетело: Приглашаем тебя присоединиться к новой группе! Занятия проходят в формате вебинаров (можно участовать из любой точки мира или просматривать записи занятий) и подразумевают живое общение с преподавателем и одногруппниками (ваши вопросы точно не останутся без ответа). По результатам обучения и подготовки дипломной работы лучшим студентам будет предложено пройти собеседование у наших компаний-партнеров.
🐙 Antony
А почему он здесь предпочтет темплейтную версию?
Там Антон отвечал уже: > Тип шаблона выведется как foo&, а он лучше (нет qualification conversion). См. http://eel.is/c++draft/over.ics.rank#3.2.6
🐙 Antony
ну что, Антоша, у тебя появился шанс изменить свою жизнь :)))
Ну могу поверить своему счастью! Такой шанс бывает раз в жизни
Anatoly
Там Антон отвечал уже: > Тип шаблона выведется как foo&, а он лучше (нет qualification conversion). См. http://eel.is/c++draft/over.ics.rank#3.2.6
Ребят, давайте все же о баранах: 15.8.1 Copy/move constructors [class.copy.ctor] 1 A non-template constructor for class X is a copy constructor if its first parameter is of type X&, const X&, volatile X& or const volatile X&, and either there are no other parameters or else all other parameters have default arguments (11.3.6). [
Anatoly
С этим никто не спорит, что копирующий конструктор должен быть не шаблонным?
Anatoly
Если никто, то что же происходит здесь: foo f2{f1}. Копирующее конструирование или нет?
Anatoly
Нет не копирующее конструирование
А что? Я хочу состояние одного объекта foo скопировать в другой объект foo при конструировании.
🐙 Antony
Конструктор от шаблонного параметра :( Придётся рулить через enable_if<!is_same<T const&, const foo&>::value >
Anatoly
Конструктор от шаблонного параметра :( Придётся рулить через enable_if<!is_same<T const&, const foo&>::value >
да, я это уже использовал. но почему? что-то у меня базис пошатнулся.
Anatoly
стандарт же явно говорит о том, что здесь foo f2{f1} должен быть вызван копирующий конструктор. копирующий конструктор не может быть шаблонным.
Крылатый
К сожалению, результаты Вашего теста пока недостаточны для начала обучения на курсе. Мы уже работаем над подготовительными материалами, которые помогут Вам повысить уровень своих знаний и подготовят Вас к прохождению теста, после чего будем рады видеть Вас в рядах обучающихся на курсе!
Крылатый
Кек
Mikhail
Лучше специально отвечая неверно начиная с 3его вопроса
Не, всё таки есть какой-то порог. К сожалению, результаты Вашего теста пока недостаточны для начала обучения на курсе. Мы уже работаем ... (бла-бла)... Возвращайтесь и проходите тестирование с новыми знаниями!
Mikhail
Ой\
Mikhail
Опоздал)
🐙 Antony
стандарт же явно говорит о том, что здесь foo f2{f1} должен быть вызван копирующий конструктор. копирующий конструктор не может быть шаблонным.
тут будет поиск наиболее подходящего конструктора, при этом выберется не конструктор копирования, а конструктор от шаблонного параметра. Всё как в случае с функциями... Но получается и правда оч стрёмно
Dmitry
Курс на ОТУСе нужен тем, кому лень прочитать 5 книг: Прату, Майерса, банду_четырёх, параллельность и по постгресу чего-нить. Практики очень мало.
🐙 Antony
Антоша, а кто гуру в последней инстанции? Вот ты видишь например неочевидное, к кому ты обращаешься?
Тыкаюсь в разные компиляторы, вижу разницу - завожу тикет и смотрю что там будут говорить разработчики C++ ядра компилятора :) Самые крутые в этом вопросе - Ричард Смит, Йенс Мауер, Хьюберт Тонг и Давид Вандерворд
Anton
спасибо, попробую спросить в слеке.
Анатолий, то, на что Вы наткнулись - известная проблема. О ней и Майерс и куча блогеров писали
Anton
http://ericniebler.com/2013/08/07/universal-references-and-the-copy-constructo/ https://akrzemi1.wordpress.com/2013/10/10/too-perfect-forwarding/
Anton
у Майера в Effective Modern C++ это 27 правило, если не ошибаюсь
Anton
Нет, 26: "Avoid overloading on universal references"
Anatoly
Анатолий, то, на что Вы наткнулись - известная проблема. О ней и Майерс и куча блогеров писали
спасибо, Антон, значит упустил это. понятно, что решил с использованием SFINAE не долго думая, но как-то у меня была внутренняя уверенность, что здесь никаких шаблонных версии не должно учавствовать. видимо, ошибся.
Max
Вопрос по компилятору и его предупреждениям. Почему для class B и, что самое главное, для class C нету аналогичного предупреждения, как в случае с class A? class A {}; class B { public: B() {} }; class C { public: C() = default; }; int main() { int y; // warning: unused variable A a; // warning: unused variable B b; // no warning C c; // no warning }
Pavel
ну потомучто он их использует
Max
ну потомучто он их использует
И где/как он использует C c?
Berkus
хехе, да, добавление конструктора глушит варнинг для B и С в гцц
Berkus
в шланге глушится только для B
Berkus
https://wandbox.org/permlink/AS6mLRjcPnYtu45g
Pavel
хехе, да, добавление конструктора глушит варнинг для B и С в гцц
ну и правильно. написал руками конструктор — значит используешь, не написал — не используешь.
Max
ну и правильно. написал руками конструктор — значит используешь, не написал — не используешь.
Но g++ так не считает, хотя default конструктор ничем не отличается от ненаписанного
Berkus
наоборот сильно проще сделать
Pavel
какая разница как оно там по стандарту. рукаим слово default писали? писали. вот у гцц одна логика ворнингов, у шланга другая и обе вполне понятны помоему.
Max
в шланге глушится только для B
MSVC тоже только B глушит... тот случай, когда MSVC нагнул GCC
Pavel
ух страсти то какие. один компилятор другова нагибает.
Pavel
компиляторные войны
Pavel
заговор программистов, не иначе
Konstantin
Кумовства компиляторского ещё нет?
Alexander "SonnySlave"
Неа. Всё, которые есть, говно