Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Подсказки / inline функции

inline функции

Автор:

Оказывается, добавления ключевого слова __inline во многих случаях недостаточно для того, чтобы компилятор поместил тело функции прямо в место ее вызова из программы. В таких случаях помогает ключевое слово __forceinline, при появлении которого компилятор "выключает" свой алгоритм оценки эффективности встроенной функции

12 октября 2009

#C++, #inline

Комментарии:

Страницы: 1 2 Следующая

dipПостоялецwww13 окт. 200922:48#1
Это к Managed C++ или  к Native C++ относится?
KpeHDeJIbПостоялецwww13 окт. 200923:02#2
facepalme.jpg

Ждем советов типа: "а вы знали что слово struct в C++ то же самое, что class с квалификатором доступа public по-умолчанию".

dipПостоялецwww13 окт. 200923:07#3
Я, кстати, не знал о __forceinline - подсказка сподвигла покопать и поизучать
KpeHDeJIbПостоялецwww13 окт. 200923:11#4
Алсо, хочется добавить о том что это MS-specific, на GCC используется __attribute__((always_inline)). А что используется в ICC?
my.nameПостоялецwww13 окт. 200923:34#5
открываешь что нибудь большое и кросплатформенное, и находишь что то типа такого

/* See if we can use __forceinline or if we need to use __inline instead */
#if OGRE_COMPILER == OGRE_COMPILER_MSVC
#  if OGRE_COMP_VER >= 1200
#      define FORCEINLINE __forceinline
#  endif
#elif defined(__MINGW32__)
#  if !defined(FORCEINLINE)
#      define FORCEINLINE __inline
#  endif
#else
#  define FORCEINLINE __inline
#endif


я бы посоветовал просто пролистывать большие проекты, много чего интересного узнаешь =)

FlaПостоялецwww14 окт. 20090:35#6
KpeHDeJIb
Плюсую.

Только хотел написать, что статей много развелось.

destratorУдалёнwww14 окт. 20097:43#7
>Оказывается, добавления ключевого слова __inline во многих случаях недостаточно для того, чтобы компилятор поместил тело функции прямо в место
> ее вызова из программы. В таких случаях помогает ключевое слово __forceinline, при появлении которого компилятор "выключает" свой алгоритм оценки
> эффективности встроенной функции

Оказывается, cpp еще можно в exe откомпилировать. Может имеет смысл сначала изучить стандарт C++ и функции компилятора, прежде, чем браться за программирование.

alex_rПостоялецwww14 окт. 20098:24#8
Я конечно и раньше не в восторге был от некоторых подсказок.
Но сейчас какаято опа твориться. Я тоже хочу статус участника:
template <class T> 
inline const T& min(const T& a, const T& b)
{
  return a < b ? a : b;
}

template <class T> 
inline const T& max(const T& a, const T& b)
{
  return a > b ? a : b;
}

Через какое время я его получу?
[/сарказм]

X512Постоялецwww14 окт. 20099:21#9
alex_r
Это в стандартной библиотеке уже есть.
my.nameПостоялецwww14 окт. 200915:36#10
2alex_r

у тебя уже нашел косяк =) если туда передать NaN флоат или дабл, и заюзать при сортировке, то у тебя будет бесконеынй цикл

alex_rПостоялецwww14 окт. 200915:46#11
my.name
и часто вы сравниваете два NaN float  при сортировке ? )
AndreyПостоялецwww14 окт. 200916:20#12
Кстати в тему
inline vs __forceinline.
innuendoПостоялецwww14 окт. 200917:15#13
Andrey
> Кстати в тему

а они не сказали в каких местах ставили inline и forceline ?

SanПостоялецwww14 окт. 200917:37#14
имхо, вредная подсказка.

Страницы: 1 2 Следующая

/ Форум / Программирование игр / Общее

Тема в архиве.

Оптовые базы спорт оптовик москва marlena.su.
2001—2017 © GameDev.ru — Разработка игр