G ++ предупреждение: метод «объявлен как« статический », но никогда не определен» для определенного метода - PullRequest
0 голосов
/ 17 апреля 2020

Метод определен (прямо в классе btw), но компилятор (g cc 6.3) по-прежнему говорит, что это не так:

template<OperatorId op>
class ChangeTypeExpression : public UnaryExpression {
 public:
  /* Ctor here... */

  // The compiler complains about the destructor
  virtual ~ChangeTypeExpression() {}

  // ... and it doesn't like this method too
  virtual string ToString(bool verbose) const {
    return ...;
  }

  // ...

  // Maybe relevant - I already don't know...
  DISALLOW_COPY_AND_ASSIGN(ChangeTypeExpression);
};

Выход компилятора следует:

[ 24%] Building CXX object src/engine/executor/CMakeFiles/supersonic.dir/expression/core/regexp_expressions.cc.o
/home/asg/work/raijin/src/engine/executor/expression/core/elementary_expressions.cc:61:11: warning: ‘supersonic::{anonymous}::ChangeTypeExpression<op>::~ChangeTypeExpression() noexcept [with supersonic::OperatorId op = (supersonic::OperatorId)265u]’ declared ‘static’ but never defined [-Wunused-function]
   virtual ~ChangeTypeExpression() {}
           ^
/home/asg/work/raijin/src/engine/executor/expression/core/elementary_expressions.cc:67:18: warning: ‘std::__cxx11::string supersonic::{anonymous}::ChangeTypeExpression<op>::ToString(bool) const [with supersonic::OperatorId op = (supersonic::OperatorId)265u]’ declared ‘static’ but never defined [-Wunused-function]
   virtual string ToString(bool verbose) const {
                  ^~~~~~~~

Оригинальный код можно найти здесь , обратите внимание, что это не мой код - ребята из Google написали его. У меня заканчиваются идеи о том, почему это может произойти, кто-нибудь знает ответ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...