Пример Bjarne Stroustrup в его часто задаваемых вопросах C ++ предполагает, что вы правы и вам нужно только определение, если вы берете адрес.
class AE {
// ...
public:
static const int c6 = 7;
static const int c7 = 31;
};
const int AE::c7; // definition
int f()
{
const int* p1 = &AE::c6; // error: c6 not an lvalue
const int* p2 = &AE::c7; // ok
// ...
}
Он говорит: «Вы можете принять адрес статического члена, если (и только если) он имеет определение вне класса». Это говорит о том, что это будет работать иначе. Возможно, ваша функция min вызывает как-то за кулисами.
Я вызывал check_login из конструктора, и это вызывало проблемы.
Решением является вызов $this->_assign_libraries();
сразу после загрузки библиотеки в конструкторе.
Благодаря этой теме на форуме codeignitor: http://codeigniter.com/forums/viewthread/145537/
Вам не нужно загружать библиотеку в МОДЕЛЬ, МОДЕЛИ всегда вызываются из КОНТРОЛЛЕРОВ, поэтому вам просто нужно загрузить библиотеки в Контроллер, и функции будут доступны в моделях, вызванных из него!
С уважением,
Педро
Библиотеки должны автоматически назначаться экземпляру модели, чтобы он работал нормально.
Помните, что если вы не можете получить доступ к суперглобалу, вы всегда можете использовать $ ci = & get_instance (), чтобы получить его без дополнительных затрат памяти.
Но все же ... ваш пример кода должен работать>. <