Size: a a a

2020 August 25

SK

Stas Koynov in pro.cxx
ок
источник

JJ

Joe Joe in pro.cxx
просто уточнил что не в скоупе дело, и все.
источник

IZ

Ilia Zviagin in pro.cxx
Stas Koynov
да ты мне скажи, я могу сделать специализацию, не вынося из класса или нет? если нет, то проблема решается:
1. Специализацией под каждый тип шаблона
2. Через вынос из класса и специализацией (как было показано выше)
3 другой вариант который я не знаю...
Если можно то как, что ты ходишь вокруг да около.
Чего ты хочешь делать специализацию и при чем тут класс?
источник

SK

Stas Koynov in pro.cxx
Ilia Zviagin
Чего ты хочешь делать специализацию и при чем тут класс?
я хотел сделать специализацию iterator_traits, оказалось что:
Если описание итератора находиться внутри шаблонного класса, то специализация iterator_traits не проходит, ошибка! я начал спрашивать как решить проблему.
Варианты ответов(правильных, которые решают проблему):
1. вынести описание итератора из класса
2. не использовать специализацию а добавить typedef-ы непосредственно в описание итератора
Не правильные варианты:
1 написать специализацию для каждого типа (фуу делаем работу компилятора)
2. Использовать наследование от типа итератора (но вроде мол не по модному, лучше сразу прописать тайпдефы)
источник

SK

Stas Koynov in pro.cxx
получается, что самый короткий вариант, это добавить тайпдефы.
источник

W

Wild_Wind in pro.cxx
Ternvein
Модули: https://docs.godotengine.org/en/stable/development/cpp/custom_modules_in_cpp.html
Плагины: https://docs.godotengine.org/en/stable/tutorials/plugins/gdnative/gdnative-cpp-example.html

В целом ни то, ни другое, к GDScript отношение не имеет. Сам GDScript -- модуль, его даже отключить можно.

Разница подходов в том, что плагин -- динамически слинкованная в рантайме либа, а модуль -- встроенный в движок код, собирающийся вместе с ним.
Собственно, покрывает оба прямых способа включить код в любой фреймворк.
Уж больно костыльно выходит.
источник

P

Pepe 🐸 in pro.cxx
Stas Koynov
да ты мне скажи, я могу сделать специализацию, не вынося из класса или нет? если нет, то проблема решается:
1. Специализацией под каждый тип шаблона
2. Через вынос из класса и специализацией (как было показано выше)
3 другой вариант который я не знаю...
Если можно то как, что ты ходишь вокруг да около.
не в курсе что нужно, но просто можешь использовать другой темплейт параметр, отличный от параметра класса и будет deduced
источник

SK

Stas Koynov in pro.cxx
Pepe 🐸
не в курсе что нужно, но просто можешь использовать другой темплейт параметр, отличный от параметра класса и будет deduced
хз я пробывал специализация не проходит: https://wandbox.org/permlink/eH9kdZLzA2fS9elf
источник

P

Pepe 🐸 in pro.cxx
имелось ввиду у итератора который внутри класса должен быть другой темплейт параметр чем у самого класса (чтобы был deducing контекст)
источник

SK

Stas Koynov in pro.cxx
Pepe 🐸
имелось ввиду у итератора который внутри класса должен быть другой темплейт параметр чем у самого класса (чтобы был deducing контекст)
ок я понял, но пока для меня вроде, использование using или тайпдеф внутри итератора вроде как лучше. и итератор внутри, и снаружи ни каких дополнительных специализаций
источник

K

Kirill in pro.cxx
$ sudo perf report perf.data --stdio
# To display the perf.data header info, please use --header/--header-only options.
#
#
# Total Lost Samples: 0
#
# Samples: 396K of event 'cycles'
# Event count (approx.): 276265831307
#
# Overhead  Command  Shared Object  Symbol
# ........  .......  .............  ......
#


#
# (Tip: To set sample time separation other than 100ms with --sort time use --time-quantum)
#

Всем привет! Почему так? perf.data весит 15мб, а report ничего не показывает
источник

K

Kirill in pro.cxx
gprof нормально работает, но хотелось бы именно perf
источник

K

Kirill in pro.cxx
Вопрос снят, надо писать просто perf report, без указания perf.data
источник

A

Alexander. in pro.cxx
@MasterZiv Только зашёл в чат для новичков и меня забанили
Можете помочь?
источник

АР

Андрей Руссков... in pro.cxx
Kirill
Вопрос снят, надо писать просто perf report, без указания perf.data
или perf report -i perf.data
источник

K

Kirill in pro.cxx
👌🏻👌🏻
источник
2020 August 26

DS

David Sorokin in pro.cxx
А есть толковое введение по концептам C++20, чтобы не в картинках, а с некоторым погружением?
источник

DS

David Sorokin in pro.cxx
А именно, допустим есть некоторый тип «Activity<Item, Impl = …>» с автоматическим преобразованием в «Activity<Item>», то есть, когда Impl становится неким стандартным. Теперь я хочу создать концепт «template<typename From, To> concept ActivityLike = std::convertible_to<From, Activity<To>>». Далее, есть куча функций вида «template<typename MapItem, typename MapFn> auto map(MapFn&&)», где автоматически выводится тип результата. Там получается что-то типа «Activiity<MapItem, SomeComplexImpl>». Вот, и я хочу в сигнатуре функции явно сказать, что некий выводимый тип результата Res удовлетворяет концепту «ActivityLike<Res, MapItem>». Все было бы просто, если бы в коде можно было бы явно ссылаться на тип Res, но он выводится, и там стоит «auto». Если попытаться ввести Res явно, то ломается выводилка типов у GCC. Может, у кого есть идеи? Или просто укажите хорошее введение по концептам с погружением. Все утро перед работой голову ломал. Если что, это хобби в свободное время. Коллег так мучать не стал бы)
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
Nikita Griazin
Доброго времени суток. Пытаюсь прикрутить древнюю либу с++ к uwp. Уперся в ошибку fatal error LNK1104: cannot open file 'LIBCMTD.lib', все варианты которые нашел в сети пробовал. Честно говоря чувствую, что в тупике. Быть может кто то ранее оказывался в подобной ситуации?
Убедись, что везде одинаковые флаги линковки вижаковского C-Run-Time. Эта либа хочет многопоточный дебажный рантайм , его надо будет указать. Где-то на мсдн была статья, как это можно сделать, и из-за чего такая ошибка, например, может возникать при миграции га новую студию (там, емнип, какие-то заморочки с ucrt их, новой оптимизированной CRT)
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.cxx
David Sorokin
А именно, допустим есть некоторый тип «Activity<Item, Impl = …>» с автоматическим преобразованием в «Activity<Item>», то есть, когда Impl становится неким стандартным. Теперь я хочу создать концепт «template<typename From, To> concept ActivityLike = std::convertible_to<From, Activity<To>>». Далее, есть куча функций вида «template<typename MapItem, typename MapFn> auto map(MapFn&&)», где автоматически выводится тип результата. Там получается что-то типа «Activiity<MapItem, SomeComplexImpl>». Вот, и я хочу в сигнатуре функции явно сказать, что некий выводимый тип результата Res удовлетворяет концепту «ActivityLike<Res, MapItem>». Все было бы просто, если бы в коде можно было бы явно ссылаться на тип Res, но он выводится, и там стоит «auto». Если попытаться ввести Res явно, то ломается выводилка типов у GCC. Может, у кого есть идеи? Или просто укажите хорошее введение по концептам с погружением. Все утро перед работой голову ломал. Если что, это хобби в свободное время. Коллег так мучать не стал бы)
У bfilipek в его блоге, вроде бы, было..
Хотя там я линк видел на этот блог, тут автор рассматривает, как можно коньцепт: https://mariusbancila.ro/blog/2019/09/12/cpp20-concepts-in-visual-studio-2019-16-3-preview-2/
источник