1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
%module cpp11_constexpr_friend
%rename("isEqual") operator==(FriendA const& lhs, FriendA const& rhs) noexcept;
%rename("isEqual") operator==(FriendB const& lhs, FriendB const& rhs) noexcept;
%inline %{
class FriendA final
{
public:
FriendA(int const v) noexcept : _v(v)
{
}
constexpr friend bool operator==(FriendA const& lhs, FriendA const& rhs) noexcept
{
return lhs._v == rhs._v;
}
private:
int _v{};
};
class FriendB final
{
public:
FriendB(int const v) noexcept : _v(v)
{
}
constexpr friend bool operator==(FriendB const& lhs, FriendB const& rhs) noexcept
{
return lhs._v == rhs._v;
}
private:
int _v{};
};
%}
|