View difference between Paste ID: FhmrgmZZ and mctkQnwU
SHOW: | | - or go back to the newest paste.
1
import std.stdio;
2
import std.typecons;
3
4
private immutable auto extensionTable = [
5
        ["WGL_ARB_make_current_read",
6
        "void function(int, int, int)", "wglMakeContextCurrentARB",
7
        "void function()", "wglGetCurrentReadDCARB"],
8
		
9
        ["WGL_ARB_pixel_format_float"],
10
        
11
        ["WGL_ARB_create_context",
12
        "void function(int, int, int)", "wglCreateContextAttribsARB"],
13
];
14
15
private template genTypes()
16
{
17
	string eval()
18
	{
19
		string code;
20
		foreach (array; extensionTable)
21
		{
22
			for (int index = 1; index < array.length; index += 2)
23
			{
24
				code ~= "alias nothrow " ~ array[index] ~ " da_" ~ array[index + 1] ~ ";";
25
			}
26
		}
27
		return code;
28
	}
29-
	string genTypes = eval(); // Error: variable genTypes cannot be read at compile time
29+
	string genTypes = eval(); 
30-
	//const(char[]) genTypes = eval(); // Working
30+
	//const(char[]) genTypes = eval(); // fix
31
}
32
33-
mixin(genTypes!());
33+
mixin(genTypes!()); // Error: variable genTypes cannot be read at compile time
34
35
void main()
36
{
37
	assert(is(da_wglCreateContextAttribsARB));
38
}