std.format.formattedRead and File.readln()
    Eyyub 
    eyyub.pangearaion at gmail.com
       
    Sat Jun  2 09:35:39 PDT 2012
    
    
  
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 !
    
    
More information about the Digitalmars-d-learn
mailing list