1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
// hello, world
//
// there are no strings. there are no string literals. there is ::tuple, a type
// made of other types, and ::integral_constant<::char, N>, a type that happens
// to be a character. ::emit prints whatever a type has to say and then a newline
// there are also no numbers, so every character is its own distance from '\0'
::emit<
::tuple<
::integral_constant<::char, ::difference<'H', '\0'>>,
::integral_constant<::char, ::difference<'e', '\0'>>,
::integral_constant<::char, ::difference<'l', '\0'>>,
::integral_constant<::char, ::difference<'l', '\0'>>,
::integral_constant<::char, ::difference<'o', '\0'>>,
::integral_constant<::char, ::difference<',', '\0'>>,
::integral_constant<::char, ::difference<' ', '\0'>>,
::integral_constant<::char, ::difference<'w', '\0'>>,
::integral_constant<::char, ::difference<'o', '\0'>>,
::integral_constant<::char, ::difference<'r', '\0'>>,
::integral_constant<::char, ::difference<'l', '\0'>>,
::integral_constant<::char, ::difference<'d', '\0'>>,
::integral_constant<::char, ::difference<'!', '\0'>>
>
>::commit;
|