Documentation
GitHubTwitter
  • overview
    • What is Lua++?
    • Why Lua++?
  • language improvements
    • Compound Assignments
    • Postfix and Prefix Operators
    • The Continue Statement
    • Constant Variables
    • Type Annotations
      • Function Annotations
    • Classes
      • Constructors
      • Templating
      • Inheritance
      • Encapsulation
    • Events
    • Macros
      • Lenient
      • Comment
      • C-Arrays
  • contributing
    • Installing the Project
Powered by GitBook
On this page

Was this helpful?

  1. language improvements
  2. Classes

Templating

Class templating is a feature commonly found in type-oriented programming languages like TypeScript or C++. While class templating is sometimes seen as having limited applications, it allows the creation of type-flexible classes that significantly reduces repetitive code.

Templating in Lua++ is quite simple and efficient. It works like so: tag where T is a type. To allow more than one type, one would separate each type name with a comma, such as: tag<T1, T2, ...>. A simple example of templating is shown below:

class Pair<T1, T2> {
  first: T1,
  second: T2,
  
  implicit constructor(f: T1, s: T2)
    self.first, self.second = f, s
  end
}

local pair: Pair<number, string> = { 3, "Three" }
PreviousConstructorsNextInheritance

Last updated 2 years ago

Was this helpful?