class Rouge::Lexers::Cpp

def self.keywords

def self.keywords
  @keywords ||= super + Set.new(%w(
    asm auto catch char8_t concept
    consteval constexpr constinit const_cast co_await co_return co_yield
    delete dynamic_cast explicit export friend
    mutable namespace new operator private protected public
    reinterpret_cast requires restrict size_of static_cast this throw throws
    typeid typename using virtual final override
    alignas alignof decltype noexcept static_assert
    thread_local try
  ))
end

def self.keywords_type

def self.keywords_type
  @keywords_type ||= super + Set.new(%w(
    bool
  ))
end

def self.reserved

def self.reserved
  @reserved ||= super + Set.new(%w(
    __virtual_inheritance __uuidof __super __single_inheritance
    __multiple_inheritance __interface __event
  ))
end