Перегрузка оператора структуры внутри другой структуры дает ошибку

Используйте не зависящие от регистров регулярные выражения вместо шаблонов glob. fnmatch.translate генерирует регулярное выражение из шаблона glob, поэтому

re.compile(fnmatch.translate(pattern), re.IGNORECASE)

дает вам нечувствительную к регистру версию шаблона glob в качестве скомпилированного RE.

Имейте в виду, что если файловая система размещается в ящике Linux в Unix-подобной файловой системе, пользователи смогут создавать файлы foo, Foo и FOO в том же каталоге.

0
задан Rahul Goswami 27 February 2019 в 21:17
поделиться

1 ответ

Как я могу перегрузить оператор Node вне структуры Node, но внутри MyStruct?

Вы не можете этого сделать. Любые операторы перегрузки, определенные вне Node и внутри MyStruct, рассматриваются как оператор перегрузки из MyStruct. Это где namespace отличается от struct.

Вы можете использовать:

struct MyStruct {
  struct Node {
    int a;
  };
};

MyStruct::Node operator+(MyStruct::Node const& A, MyStruct::Node const& B) {
   MyStruct::Node ret;
   ret.a = A.a + B.a;
   return ret;
}
0
ответ дан R Sahu 27 February 2019 в 21:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: