I am trying to consume the following function:
void f(std::istream& input, std::ostream& output) {
int n;
output << "enter a number: ";
input >> n;
}
int main() {
std::istream is;
std::ostream os;
f(is, os);
return 0;
}
Error:
'std::basic_istream<_CharT, _Traits>::basic_istream()
Full error that's the entire error I am getting out when debugging and compiling this,
c:\Users\root\Documents\cpp\main.cpp: In function 'int main()':
c:\Users\root\Documents\cpp\main.cpp:40:18: error: 'std::basic_istream<_CharT, _Traits>::basic_istream()
[with _CharT = char; _Traits = std::char_traits<char>]' is protected within this context
40 | std::istream in;
| ^~
In file included from c:\mingw\lib\gcc\mingw32\9.2.0\include\c++\iostream:40,
from c:\Users\root\Documents\cpp\main.cpp:7:
c:\mingw\lib\gcc\mingw32\9.2.0\include\c++\istream:606:7: note: declared protected here
606 | basic_istream()
| ^~~~~~~~~~~~~
c:\Users\root\Documents\cpp\main.cpp:41:18: error: 'std::basic_ostream<_CharT, _Traits>::basic_ostream()
[with _CharT = char; _Traits = std::char_traits<char>]' is protected within this context
41 | std::ostream out;
| ^~~
In file included from c:\mingw\lib\gcc\mingw32\9.2.0\include\c++\iostream:39,
from c:\Users\root\Documents\cpp\main.cpp:7:
c:\mingw\lib\gcc\mingw32\9.2.0\include\c++\ostream:390:7: note: declared protected here
390 | basic_ostream()
| ^~~~~~~~~~~~~
f(std::cin, std::cout)
result in the error below:
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_M_construct null not valid