Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2018, 08:47   #1
ezus
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 78
По умолчанию 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 в 08:58.
ezus вне форума Ответить с цитированием
Старый 14.05.2018, 09:23   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

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

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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