Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gdc.test/fail_compilation/imports/stdtraits10727.d @ 152:2b5abeee2509
update gcc11
author | anatofuz |
---|---|
date | Mon, 25 May 2020 07:50:57 +0900 |
parents | 1830386684a0 |
children |
line wrap: on
line source
template StaticArrayTypeOf(T) { inout(U[n]) idx(U, size_t n)( inout(U[n]) ); /+static if (is(T == enum)) alias .StaticArrayTypeOf!(OriginalType!T) StaticArrayTypeOf; else +/static if (is(typeof(idx(T.init/+defaultInit!T+/)) X)) alias X StaticArrayTypeOf; else static assert(0, T.stringof~" is not a static array type"); } template DynamicArrayTypeOf(T) { inout(U[]) idx(U)( inout(U[]) ); /+static if (is(T == enum)) alias .DynamicArrayTypeOf!(OriginalType!T) DynamicArrayTypeOf; else +/static if (!is(StaticArrayTypeOf!T) && is(typeof(idx(T.init/+defaultInit!T+/)) X)) { alias typeof(T.init[0]/+defaultInit!T[0]+/) E; E[] idy( E[] ); const(E[]) idy( const(E[]) ); inout(E[]) idy( inout(E[]) ); shared( E[]) idy( shared( E[]) ); shared(const E[]) idy( shared(const E[]) ); shared(inout E[]) idy( shared(inout E[]) ); immutable(E[]) idy( immutable(E[]) ); alias typeof(idy(T.init/+defaultInit!T+/)) DynamicArrayTypeOf; } else static assert(0, T.stringof~" is not a dynamic array"); } template isDynamicArray(T) { enum isDynamicArray = is(DynamicArrayTypeOf!T)/+ && !isAggregateType!T+/; } template isArray(T) { enum bool isArray = /+isStaticArray!T || +/isDynamicArray!T; }