|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
|
std::is_invokable не работает для фунций членов19.12.2019, 16:08. Показов 8029. Ответов 108
Метки нет (Все метки)
Это так и должно бытьили я чтото неправильно делаю ?
0
|
|
| 19.12.2019, 16:08 | |
|
Ответы с готовыми решениями:
108
Операция std::cout для Объекта типа std::string Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream |
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
|||
| 21.12.2019, 01:16 [ТС] | |||
|
0
|
|||
|
Вездепух
13207 / 6841 / 1823
Регистрация: 18.10.2014
Сообщений: 17,304
|
|||
| 21.12.2019, 01:32 | |||
|
А дальше начинается реальная жизнь, т.е. то, что я назвал опытом. И если мы знаем, что в реальной жизни указатели int * и void * скорее всего будут иметь одинаковые внутренние представления, мы в то же время знаем, что в реальной жизни указатели void (*)(Class *) и void (Class ::*)() будут иметь совсем разные внутренние представления, включая разные размеры.http://coliru.stacked-crooked.... c6b9214136 Более того, мы прекрасно знаем, почему это так. --- А когда опыта у вас будет еще больше, вы узнаете, что бывает такая экзотика, где и int * с void * имеют разные представления и даже разные размеры. "Есть многое на свете друг Горацио..."
1
|
|||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||
| 21.12.2019, 01:56 | ||||
void*у них sizeof может различаться. могут быть ещё какие то противопоказания. если тебе интересна эта тема, рекомундую: Указатели на функции-члены и реализация самых быстрых делегатов на С++. а насчет стандарта: "указатель-на-функцию-член" - не "указатель-на-функцию". ты реально какой то трудный. из того факта, что в каких то случаях sizeof может различаться никак не следует, что преобразование невозможно. в каких то случаях невозможно. в каких то возможно.
0
|
||||
|
Вездепух
13207 / 6841 / 1823
Регистрация: 18.10.2014
Сообщений: 17,304
|
||
| 21.12.2019, 02:14 | ||
![]() С одной стороны видно, что начинается "включение задней", т.е. постепенное прозрение наклевывается, но в остальном пока "как об стенку горох". Понимание архиважной фундаментальной разницы между преобразованием и реинтерпретацией еще даже на горизонте не засветилось...
0
|
||
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
||||
| 21.12.2019, 02:41 [ТС] | ||||
|
А именно функциональный тип как категорию типов, у которых sizeof может быть разный, а на других вычислительных платформах, где нет такого разнообразия вариантов адрессации sizeof будет одинаковый и это будет тотже самый C++. Давайте не выходить за флажки. Добавлено через 14 минут
0
|
||||
|
Комп_Оратор)
|
||
| 21.12.2019, 03:19 | ||
void* и char*. Что же касается указателей на методы, то там дескриптор может включать адресацию через промежуточные уровни. Например, доступ к виртуальным методам через указатель на базовый класс, а это значит, что запрос должен быть передан конкретному динамическому типу, а потом вычисляется адрес. То есть, схема указания адреса на метод класса в такой же степени похожа на указатель на"обычную свободную функцию" , в какой обычная функция - массив байт. Сравнение с С тут не к месту. Думаете зря придуман такой вид упаковки вызова в объект как std::function+std::bind ? Создание функционального объекта будь оно хоть лямбда хоть биндинг, это же дополнительные расходы. Но это выход для получения универсального способа обобщения "вызываемого" объекта. зы. Прощу у всех прощения за выступление в "лёгком весе". Не спится.
0
|
||
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
||
| 21.12.2019, 03:26 [ТС] | ||
|
Хотя нет, должен признать всётаки разные категории семейство типов функций и нестатических членов. Но в остальном прошу вести дискуссию в рамках правил языка.
Добавлено через 6 минут Всё остальное я готов слушать и матать на ус у тутошних карифеев.
0
|
||
|
Комп_Оратор)
|
|||
| 21.12.2019, 03:51 | |||
|
0
|
|||
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
||
| 21.12.2019, 03:55 [ТС] | ||
|
0
|
||
|
Вездепух
13207 / 6841 / 1823
Регистрация: 18.10.2014
Сообщений: 17,304
|
|||
| 21.12.2019, 04:10 | |||
void * и char * стандарт гарантирует (!). Я вел речь о void * и int *.
1
|
|||
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
|
| 21.12.2019, 04:11 [ТС] | |
|
Итак что мы имеем. Есть стандартное преобразование из ссылки на функциональный тип в указатель на функциональный тип.
Есть прецентент из практики когда идёт преобразование из ссылки на функцию член в указатель на функцию член. Всё так ? Ничего не перепутал. Задача понять природу этого явления. Так ?
0
|
|
|
Вездепух
13207 / 6841 / 1823
Регистрация: 18.10.2014
Сообщений: 17,304
|
|||||||||
| 21.12.2019, 04:26 | |||||||||
& к функции. Никакого отношения к членам класса это преобразование не имеет. Этот вопрос я уже полностью закрыл раньше. Давайте не будем устраивать тут "сказку про белого бычка".
1
|
|||||||||
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
||||
| 21.12.2019, 04:34 [ТС] | ||||
|
Надо было просто както назвать его.
0
|
||||
|
Вездепух
13207 / 6841 / 1823
Регистрация: 18.10.2014
Сообщений: 17,304
|
||
| 21.12.2019, 04:52 | ||
|
А когда у вас есть прямой доступ к сырой памяти, вы можете копировать эту сырую память из одного места в другое, либо через memcpy, либо через переинтерпретацию+присваивание (как это было сделано здесь). Копированием байтов из одного места в другое вы можете "собирать" из разрозненных байтов бессмысленных монстров какой-угодно степени монструозности. Поведение таких монстров, разумеется, не определено. Не надо жаловаться на таких монстров, если вы сами их собрали. Язык тут ни в чем не виноват. А называть такое копирование сырой памяти преобразованием - это уже профанация. Термин преобразование в С++ уже занят и означает он совсем другое.
0
|
||
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
||
| 21.12.2019, 04:59 [ТС] | ||
|
0
|
||
|
Вездепух
13207 / 6841 / 1823
Регистрация: 18.10.2014
Сообщений: 17,304
|
||
| 21.12.2019, 05:03 | ||
|
0
|
||
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
|
| 21.12.2019, 05:07 [ТС] | |
|
Не это правда интересно, что будет если сделать declval(*((Free*)proxy)), а потом этот тип заюзать в декларативном языке шаблонов.
Надо попробовать свести с ума компилятор.
0
|
|
|
Вездепух
13207 / 6841 / 1823
Регистрация: 18.10.2014
Сообщений: 17,304
|
||
| 21.12.2019, 05:19 | ||
declval(*((Free*)proxy)). О чем речь вообще? Или вы имеете в виду decltype?Когда вы написали про "появление типа, который запрещён правилами", я подумал, что вы оговорились, и речь идет о появлении значения, которое запрещено правилами. Никакого типа "который запрещен правилами", пока что нигде тут не появлялось. Тип decltype(*((Free*)proxy)) - это просто Free &. В этом типе нет ничего необычного или запрещенного. О чем вы?
0
|
||
|
13 / 13 / 1
Регистрация: 19.10.2019
Сообщений: 607
|
||
| 21.12.2019, 05:23 [ТС] | ||
|
0
|
||
|
Вездепух
13207 / 6841 / 1823
Регистрация: 18.10.2014
Сообщений: 17,304
|
||
| 21.12.2019, 05:26 | ||
|
0
|
||
| 21.12.2019, 05:26 | |
|
std::string код работает в VS 6.0, но не работает в VS2012 (error C4996) ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri STL std::set, std::pair, std::make_pair Для заданной матрицы найти такие k и n, что сумма членов k-го столбца совпадает с суммой членов n-й строки
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
|
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
|
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
|
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
|
|
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
|
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока
Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
|
23. что сделано за последнее время.
anaschu 17.06.2026
• Эталон: Клиника НИИ питания РАМН, Москва — централизованный пищеблок, 225 коек, 180 пациентов
• Git: репозиторий med2, ветка абсентеизм. Рабочий файл: СРесурсами1_v4. alp
• Смежный проект:. . .
|
22. Подключение слоя системной динамики (потоковые диффуры): экономические метрики модели
anaschu 17.06.2026
Апдейт модели: финансовый контур, разделение затрат
Продолжаю развивать модель рабочего коллектива на AnyLogic. В этот раз работа шла над агентом Экономика — финансовым SD-слоем модели. Задача:. . .
|