variadic-init.c
来自「用于进行gcc测试」· C语言 代码 · 共 57 行
C
57 行
// { dg-do run }// { dg-options "-std=gnu++0x" }// PR c++/33510#define SIZE_FROM_CTORextern "C" void abort ();template<int M, int N> struct pair{ int i, j; pair () : i (M), j (N) {}};template<int... M> struct S{ template<int... N> static int *foo () {#ifdef SIZE_FROM_CTOR static int x[] = { (M + N)..., -1 };#else static int x[1 + sizeof... N] = { (M + N)..., -1 };#endif return x; }};template<typename... M> struct R{ template<typename... N> static int *foo () {#ifdef SIZE_FROM_CTOR static int x[] = { (sizeof(M) + sizeof(N))..., -1 };#else static int x[1 + sizeof... N] = { (sizeof(M) + sizeof(N))..., -1 };#endif return x; }};int *bar (){ return S<0, 1, 2>::foo<0, 1, 2> ();}int *baz (){ return R<char, short, int>::foo<float, double, long> ();}int main (){ int *p = bar (); if (p[0] != 0 || p[1] != 2 || p[2] != 4 || p[3] != -1) abort ();}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?