Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Незнайка
26 / 11 / 2
Регистрация: 14.10.2016
Сообщений: 373
Записей в блоге: 2

По какой причине компилятор может не заинлайнить функцию?

19.06.2017, 17:46. Показов 1540. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравия всем!

В общем, прочёл я тут одну тему, и нашёл кое-что интересное:

Цитата Сообщение от CheshireCat Посмотреть сообщение
Обрати внимание только, что inline - это не приказ, а нижайшая просьба к компилятору: "Милостивый государь, будьте так любезны, попытайтесь заинлайнить эту функцию, пожалуйста." - каковую просьбу компилятор может выполнить, а может и проигнорировать. Поэтому рассчитывать на то, что функция будет обязательно заинлайнена, нельзя.
... То есть, компиллер может функцию и не заинланить? Почему? Так быстрее?

ЗЫ: Касается ли это компилятора MinGW? Просто я с С++ не на VS работаю.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.06.2017, 17:46
Ответы с готовыми решениями:

По какой причине динамическая переменная может вычисляться неверно?
Подскажите, пожалуйста, по какой причине значение динамической переменной вычисляется как 0, если пример для вычисления = (40/100)*3.2, где...

По какой причине Windows XP может сбросить настройки созданного пользователя?
Есть вопрос: по какой причине windows xp может сбросить настройки созданного пользователя? подключалась сегодня ч-з удаленный рабочий,...

Клиент-сервер: По какой причине сокет может отказываться отсылать пакеты
Дано: сервер на C#, клиент на AS3 (хотя, думаю, это не имеет значения). Сервер принимает соединения по 3 портам - инструкции, дата1, дата2...

2
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
19.06.2017, 17:49
Цитата Сообщение от mkostoevr Посмотреть сообщение
Почему?
Потому что так сложились звёзды.
Потому что проанализировав контекст, компилятор пришёл к выводу, что лучше не инлайнить.
Более того, в одном контексте компилятор может функцию заинлайнить, в другом нет.
Вам лучше не заморачиваться по этому поводу, компиляторы сейчас достаточно взрослые ребята, чтобы сами решать что им и куда вставлять.
Хотите подробней рассмотреть данный вопрос - почитайте Саттера, "Новые сложные задачки на С++", он там всё в деталях описывает.
1
0 / 0 / 2
Регистрация: 19.06.2017
Сообщений: 28
19.06.2017, 18:01
Лучший ответ Сообщение было отмечено mkostoevr как решение

Решение

Цитата Сообщение от mkostoevr Посмотреть сообщение
может функцию и не заинланить?
Не может, если сделать правильно:
https://gcc.gnu.org/onlinedocs... butes.html
always_inline
Generally, functions are not inlined unless optimization is specified. For functions declared inline, this attribute inlines the function even if no optimization level was specified.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.06.2017, 18:01
Помогаю со студенческими работами здесь

По какой причине приложение может застопорится при вызове функции Stream.Read?
По какой причине приложение может застопорится при вызове функции Stream.Read? Т.е. не выдает ошибку, ничего не происходит, просто...

Какой компилятор может воспроизводить звук?
Нужен компилятор, который может не только показывать последствия написания когда, но и озвучивать. Ошибок в коде нет, копипастил чужие...

По какой-то причине не работает функция
Доброго времени суток, уважаемый форум. #include <iostream> using namespace std; class Rectangle { public: ...

По какой причине это происходит
Прошу помочь в чем дела без стебов, происходит только в гта 5 лицензия не ужели карте хана? ведьмаке 3 все оки,паста поменяна KJCJhwuXISE

Может ли компьютер выключаться по причине просадки напряжения на 5v и 12v ?
Здравствуйте! Пожалуйста, помогите разобраться. Может по этой причине отключаться компьютер каждые 30 минут? Скрины прилагаются. Вольтаж...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru