31 lines
483 B
C++
31 lines
483 B
C++
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++23 %s
|
|
|
|
// expected-no-diagnostics
|
|
|
|
namespace A {
|
|
|
|
struct Foo {
|
|
static int operator()(int a, int b) { return a + b; }
|
|
static int operator[](int a, int b) { return a + b; }
|
|
};
|
|
|
|
void ok() {
|
|
// Should pass regardless of const / volatile
|
|
Foo foo;
|
|
foo(1, 2);
|
|
foo[1, 2];
|
|
|
|
const Foo fooC;
|
|
fooC(1, 2);
|
|
fooC[1, 2];
|
|
|
|
const Foo fooV;
|
|
fooV(1, 2);
|
|
fooV[1, 2];
|
|
|
|
const volatile Foo fooCV;
|
|
fooCV(1, 2);
|
|
fooCV[1, 2];
|
|
}
|
|
|
|
}
|