Russian Qt Forum

Программирование => С/C++ => Тема начата: Igors от Март 12, 2019, 13:21



Название: static inline ???
Отправлено: Igors от Март 12, 2019, 13:21
Добрый день

Всегда полагал что если в .сpp объявил ф-цию inline, то static ни к чему. Но вот линкер не находит такие inline. Дописываю static - все нормуль. Это что за мода такая пошла? Правда статик либа (cpp файл) на icc (где в лесах много диких обезьян) а приложение на шланге. Не подскажете что где вкл/выкл (у обоих компиляторов опций море)?

Спасибо
  


Название: Re: static inline ???
Отправлено: Авварон от Март 13, 2019, 00:05
inline говорит что неплохо бы эту функцию заинлайнить в место вызова
static говорит что функция не видна за пределами этого юнита трансляции (цпп файла)
это как бы ортогональные вещи как класс и функция как конст и волатайл как мухи и котлеты. ну вы поняли в опщем.

зы: а как вы пытаетесь экспортировать статик/инлайн функцию и зачем?


Название: Re: static inline ???
Отправлено: kai666_73 от Март 13, 2019, 11:10
у статик метода (метод класса) несколько иное предназначение )


Название: Re: static inline ???
Отправлено: ViTech от Март 13, 2019, 11:33
Не подскажете что где вкл/выкл (у обоих компиляторов опций море)?

Такая опция могла бы помочь: -ffuck-off-and-just-compile.


Название: Re: static inline ???
Отправлено: Igors от Март 13, 2019, 13:42
у статик метода (метод класса) несколько иное предназначение )
Про методы класса разговора не было

зы: а как вы пытаетесь экспортировать статик/инлайн функцию и зачем?
Да ничего я не пытаюсь, просто нужен "местный" inline, только в этом файле, ну вот я его там и написал, в хедер выносить не стал



Название: Re: static inline ???
Отправлено: _Bers от Март 13, 2019, 13:53

Код:
#include <main/project.h>   // <--- подтаскиваем основной стафф

// --- собственность ед. трансляции.
// --- снаружи никто никак не сможет получить доступ
// --- ключевые слова static или inline не нужны.
namespace {

    void foo() {... }

}//namespace

// основной код