hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/xs.sfinae36
1 files changed, 36 insertions, 0 deletions
diff --git a/examples/xs.sfinae b/examples/xs.sfinae
new file mode 100644
index 0000000..faae464
--- /dev/null
+++ b/examples/xs.sfinae
@@ -0,0 +1,36 @@
+// the original sin: how wide is int xs[20][20]
+
+::emit<
+ ::decltype(
+ ::extent<
+ ::array<
+ ::array<
+ ::remove_cv_t<
+ ::int32_t
+ >,
+ ::integral_constant<
+ ::size_t,
+ ::tuple_size<
+ ::array<
+ ::byte,
+ ::difference<'Z', 'F'>
+ >
+ >::value
+ >::value
+ >,
+ ::integral_constant<
+ ::size_t,
+ ::difference<'Z', 'F'>
+ >::value
+ >
+ >::value
+ )
+>::commit;
+
+// an array type says its extent, a bare type says its name
+::emit<
+ ::array<
+ ::byte,
+ ::difference<'Z', 'F'>
+ >
+>::commit;