LINUX.ORG.RU

C++, наследование, область видимости.


0

0

Вобщем, надо скомпилировать программу EChem++-0.3 http://sourceforge.net/projects/echempp/, зависимости что ей нужны, я поставил (правда, некоторые пакеты, например vtk, более новые, чем у неё в ридми написаны). А вот на сборке самой программы застрял. Конфигурация проходит нормально, а сборка валится с ошибками: http://shiriy.pastebin.com/f7facc107

Я так понимаю, что в segment.hpp (http://shiriy.pastebin.com/f20057880) переменная _Imax в частности не определена в строке 324.

Такой вопрос: что изменить, чтобы она была видна?

P.S. в сях я далеко не мастер, знакомые тоже не смогли помочь. ОС - Gentoo/Linux. Как соберу всё, выложу ебилды, не жалко.


странно всё это ... вроде, как должна быть видна. 
Надо бы самому по-пробовать.

Valeriy_Onuchin ★★
()

Попробуй на DISegment<D,I>::maximum() заменить. Может чо и выйдет.

Absurd ★★★
()

Устаревший код. Собирать надо с -fpermissive или писать по стандарту

DISegment<D,I> :: _Imax.

Reset ★★★★★
()
Ответ на: комментарий от Reset

да, подправил segment.hpp, теперь пытаюсь собрать 3-м gcc

shiriy
() автор топика
Ответ на: комментарий от Reset

>Устаревший код. Собирать надо с -fpermissive или писать по стандарту

А что, gcc 3 не соответствует стандарту? Или там ревизии разные?

/me только что пропатчил verlihub на предмет урезанных зависимостей в стандартных хедерах.

Absurd ★★★
()
Ответ на: комментарий от Begemoth

>> А что, gcc 3 не соответствует стандарту?

>Он менее строг, чем 4.

Строг в каком смысле? По мне так protected-поля парента должны быть наследнику видны.

Absurd ★★★
()
Ответ на: комментарий от Reset

>Родитель зависит от аргументов темплейта, откуда компилятор узнает, что эти поля именно там ?

Речь о частичной специализации где это поле убрано чтоли?

Absurd ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.