Hi,
This following code won't compile :
import std.stdio;
import std.format;
void main()
{
auto f = File("myfile.txt", "r");
uint life;
formattedRead(f.readln(), "Life %s", &life); // Error 1
formattedRead(cast(string)f.readln(), "Life %s", &life);
// Error 1
string str = f.readln();
formattedRead(str, "Life %s", &life); // works
writeln(life);
}
Error 1 :
Error: template std.format.formattedRead does not match any
function
template declaration
C:\D\dmd2\windows\bin\..\..\src\phobos\std\format.d(502): Error:
template std.fo
rmat.formattedRead(R,Char,S...) cannot deduce template function
from argument ty
pes !()(string,string,uint*)
Even more weird :
import std.stdio;
import std.format;
void main()
{
auto f = File("myfile.txt", "r");
uint life;
formattedRead(f.readln(), "Life %s", &life); // Error 1
writeln(typeid(f.readln())); // Error 2 O_o
}
However :
void main()
{
auto f = File("myfile.txt", "r");
writeln(typeid(f.readln())); // works fine
}
Error 1 && 2(sorry):
mix.d(7): Error: template std.format.formattedRead does not match
any function
template declaration
C:\D\dmd2\windows\bin\..\..\src\phobos\std\format.d(502): Error:
template std.fo
rmat.formattedRead(R,Char,S...) cannot deduce template function
from argument ty
pes !()(string,string,uint*)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\conv.d(244): Error:
template std.conv
.toImpl does not match any function template declaration
C:\D\dmd2\windows\bin\..\..\src\phobos\std\conv.d(244): Error:
template std.conv
.toImpl cannot deduce template function from argument types
!(string)(ubyte)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\conv.d(244): Error:
template instance
toImpl!(string) errors instantiating template
C:\D\dmd2\windows\bin\..\..\src\phobos\std\conv.d(3034): Error:
template instanc
e std.conv.to!(string).to!(ubyte) error instantiating
C:\D\dmd2\windows\bin\..\..\src\phobos\std\conv.d(3016):
instantiated fro
m here:
textImpl!(string,string,void*,string,int,string,int,string,char,string,u
byte,string,ubyte,string,bool,string,bool,string,bool,string,bool,string,bool,st
ring,const(char)[],string,const(char)[],string)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\format.d(1078):
instantiated f
rom here:
text!(string,void*,string,int,string,int,string,char,string,ubyte,stri
ng,ubyte,string,bool,string,bool,string,bool,string,bool,string,bool,string,cons
t(char)[],string,const(char)[],string)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\format.d(392):
instantiated fr
om here: FormatSpec!(char)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(687):
... (1 instantia
tions, -v to show) ...
C:\D\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(1574):
instantiated fr
om here: write!(TypeInfo_Array,char)
mix.d(8): instantiated from here: writeln!(TypeInfo_Array)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\conv.d(3016): Error:
template instanc
e
std.conv.textImpl!(string,string,void*,string,int,string,int,string,char,strin
g,ubyte,string,ubyte,string,bool,string,bool,string,bool,string,bool,string,bool
,string,const(char)[],string,const(char)[],string) error
instantiating
C:\D\dmd2\windows\bin\..\..\src\phobos\std\format.d(1078):
instantiated f
rom here:
text!(string,void*,string,int,string,int,string,char,string,ubyte,stri
ng,ubyte,string,bool,string,bool,string,bool,string,bool,string,bool,string,cons
t(char)[],string,const(char)[],string)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\format.d(392):
instantiated fr
om here: FormatSpec!(char)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(687):
instantiated fro
m here: formattedWrite!(LockingTextWriter,char,TypeInfo_Array)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(1574):
instantiated fr
om here: write!(TypeInfo_Array,char)
mix.d(8): instantiated from here: writeln!(TypeInfo_Array)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\format.d(1078): Error:
template insta
nce
std.conv.text!(string,void*,string,int,string,int,string,char,string,ubyte,s
tring,ubyte,string,bool,string,bool,string,bool,string,bool,string,bool,string,c
onst(char)[],string,const(char)[],string) error instantiating
C:\D\dmd2\windows\bin\..\..\src\phobos\std\format.d(392):
instantiated fr
om here: FormatSpec!(char)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(687):
instantiated fro
m here: formattedWrite!(LockingTextWriter,char,TypeInfo_Array)
C:\D\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(1574):
instantiated fr
om here: write!(TypeInfo_Array,char)
mix.d(8): instantiated from here: writeln!(TypeInfo_Array)
Any reactions ? :D
Thanks !