Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 14.05.2018, 09:47   #1
ezus
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 39
Репутация: 10
По умолчанию inline (MS VS-2015)

Добрый день.

Как заставить inline быть действительно inline.?
Сейчас для
Код:

[
	void copy( ZFtaQQCalc* qq );

	inline void copy1( ZFtaQQCalc* qq ) { _logic = qq->_logic; _Qt = qq->_Qt; 	_Qw = qq->_Qw;	}

	#define copy2(q,qq) { q._logic = qq._logic; q._Qt = qq._Qt; 	q._Qw = qq._Qw; }
]

я получаю

Код:

[
       qq1.copy( qq2 );
0F3CEC23  lea         ecx,[qq2]  
0F3CEC26  push        ecx  
0F3CEC27  lea         ecx,[qq1]  
0F3CEC2A  call        ZFtaQQCalc::copy (0F391A6Eh)  

       qq1.copy1( &qq2 );
0F3CEC2F  lea         edx,[qq2]  
0F3CEC32  push        edx  
0F3CEC33  lea         ecx,[qq1]  
0F3CEC36  call        ZFtaQQCalc::copy1 (0F392E91h)  

       copy2( qq1, qq2 );
0F3CEC3B  mov         eax,dword ptr [ebp-58h]  
0F3CEC3E  mov         dword ptr [ebp-30h],eax  
0F3CEC41  movsd       xmm0,mmword ptr [ebp-50h]  
0F3CEC46  movsd       mmword ptr [ebp-28h],xmm0  
0F3CEC4B  movsd       xmm0,mmword ptr [ebp-48h]  
0F3CEC50  movsd       mmword ptr [ebp-20h],xmm0  
]

inline не отличается от обычного вызова, а мне надо как #define

Что у меня определено неправильно?
Или так и должно быть всегда?

Последний раз редактировалось Аватар; 14.05.2018 в 09:58.
ezus вне форума   Ответить с цитированием
Старый 14.05.2018, 10:23   #2
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,534
Репутация: 1728
По умолчанию

Цитата:
Сообщение от ezus Посмотреть сообщение
Как заставить inline быть действительно inline.?
Никак.
inline - это только рекомендация компилятору. Обычно он с такими вещами справляется лучше.
В зависимости от компилятора можно играться настройками самого компилятора и разными нестандартными директивами, типа forceinline.
waleri вне форума   Ответить с цитированием
Старый 14.05.2018, 10:41   #3
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,041
Репутация: 2054

icq: 216409213
По умолчанию

Только не стоит забывать, что некоторые компиляторы имеют эвристики против "умных" программистов, пихающих forceinline/inline везде, и забивают болт на пользовательские настройки и директивы.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 14.05.2018, 11:17   #4
ezus
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 39
Репутация: 10
По умолчанию

За forceinline спасибо.
Что ж, если не поможет - будем пользовать замшелый #define.
ezus вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[РЕШЕНО] Нужна помощь с display:inline и inline-block; Bugerman21 HTML и CSS 2 26.06.2017 09:10
inline c gcc O3 медленее чем без inline LynXzp Общие вопросы C/C++ 4 27.12.2012 20:54
inline??? пыхта4ог Общие вопросы C/C++ 2 09.11.2007 18:54


04:19.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru