hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/tutorial/01_hello.sfinae
blob: 81d84e6d57fa62c26f24a7865717c4004dc96edf (plain)
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;