On Tuesday, 30 June 2015 at 21:06:58 UTC, WhatMeWorry wrote:
All the stuff I've read about templates always refers to them
as template declarations.
So with the following code segment:
template codeBlockTemplate(T, U)
{
T a = 7;
U b = 'z';
}
codeBlockTemplate!(int, char); // error here
Microsof's Visual Studio IDE tells me <identifier> expected, ;
found
But aren't templates instantiated at compile time? If so, isn't
memory allocated at compile time, so in theory couldn't
templates support code definitions?
I'm having trouble understanding the question/problem, but maybe
you're looking for `mixin`:
mixin codeBlockTemplate!(int, char);
Bonus question: Isn't a Zero-parameter template declaration
pretty much worthless?
Pretty much, yeah. A function with an empty body is pretty much
worthless, too. I see no point in adding extra logic to forbid
them, though. They don't do any harm and there are probably cases
when it'd be annoying were they forbidden.