LINUX.ORG.RU

Объясните кусок кода из исходников Qt

 ,


0

5
Q_DECL_CONSTEXPR static inline bool qFuzzyCompare(double p1, double p2) Q_REQUIRED_RESULT Q_DECL_UNUSED;
Q_DECL_CONSTEXPR static inline bool qFuzzyCompare(double p1, double p2)
{
    return (qAbs(p1 - p2) * 1000000000000. <= qMin(qAbs(p1), qAbs(p2)));
}

Зачем делать определение и следом реализацию?

Например чтобы можно было реализацию перенести в .cpp файл не трогая определение. А вообще у них что, нет style guide где про это можно почитать?

slovazap ★★★★★
()

Затычка для дырок в стандарте C++. В смысле, чтобы можно было малой кровью на всех компиляторах C++ собрать.

red75prim ★★★
()

еще вариант - копипаста и потом не почистили

anonymous
()

Спроси в рассылке. Тебе разрабы Qt там моментально пояснят.

EXL ★★★★★
()

А выше комментария с документацией нет? Сам так делал не раз, т к генератор документации не парсил комментарии перед телом функции, только перед определением.

Tayler ★★
()
// /tmp/x:cat a.cc b.cc
// a.cc
int f(void) __attribute__((warn_unused_result)) { return 42; }
// b.cc
int f(void) __attribute__((warn_unused_result));
int f(void) { return 42; }
$ g++ -c a.cc
a.cc:2:13: ошибка: атрибуты не допускаются при определении функции
 int f(void) __attribute__((warn_unused_result)) { return 42; }
             ^
$ g++ -c b.cc
sf ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.