cython

Форк
0
/
cpp_static_method_overload.pyx 
49 строк · 926.0 Байт
1
# mode: run
2
# tag: cpp, no-cpp-locals
3

4
cdef extern from *:
5
    """
6
    struct Foo
7
    {
8

9
      static const char* bar(int x, int y) {
10
        return "second";
11
      }
12

13
      static const char* bar(int x) {
14
        return "first";
15
      }
16

17
      const char* baz(int x, int y) {
18
        return "second";
19
      }
20

21
      const char* baz(int x) {
22
        return "first";
23
      }
24
    };
25
    """
26
    cppclass Foo:
27
        @staticmethod
28
        const char* bar(int x)
29

30
        @staticmethod
31
        const char* bar(int x, int y)
32

33
        const char* baz(int x)
34
        const char* baz(int x, int y)
35

36
def test_normal_method_overload():
37
    """
38
    >>> test_normal_method_overload()
39
    """
40
    cdef Foo f
41
    assert f.baz(1) == b"first"
42
    assert f.baz(1, 2) == b"second"
43

44
def test_static_method_overload():
45
    """
46
    >>> test_static_method_overload()
47
    """
48
    assert Foo.bar(1) == b"first"
49
    assert Foo.bar(1, 2) == b"second"
50

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.