Ok this seems to clarify what I originally explained and you refuse to
answer in a satisfactory manner.
So I will repeat the question with different wording.
What technical aspect of FG's post am I disputing?
Francis wrote: "If the input operation fails for any reason then the
expression will evaluate as false." and added: "So the code can be read
as 'as long as input succeeds...". It's evident that he was speaking
about the success of the input process in general and of the last step
(the extraction) in particular.
You replied to those words with "Not Quite true according to this" and
you posted the link to a FAQ.
Saying that something is "not quite true" implies that there is
something false or wrong with that, but even assuming that you didn't
meant to interpret it in this way (you said that it was a "tongue in
cheek" statement), you added "Input can succeed but that expression
evaluate to false", which is a technical correction of Francis' words.
Now I challenge you to post a program that demonstrates successful input
/without attempting to extract the data from the stream/, just for fun.
The program must be fully conforming and must not present any
portability issue.
You know, the Standard doesn't really care how the data comes into the
stream (which would be your concept of "input", if I understand it
correctly), that's an implementation detail for the Standard, completely
out of the scope of the Standard itself.
I challenge you to post a citation of the Standard that supports /your/
concept of "input". A citation from the draft of the upcoming Standard
will be fine (that document is freely accessible), but of course, the
part you'll be citing should also be part of the /current/ Standard in
order to be valid in this discussion.
Let's try to make this clear, once more: I agree with you that the
process of std::cin getting filled with data from some external source
is /an/ input process, but it's not /the/ input process. It's just one
step of a bigger process.
The OP was interested into the /last/ step of this process, that is, the
input from std::cin to an object: Francis' post was about this and
nothing more.
Are you suggesting that (cin>>value) simply extracts data from the
stream and that it does not in fact also get input from the user?
This seems to be your interpretation , which would be completely incorrect.
Your characterization of my eventual interpretation is faulty: I can
invoke a program redirecting the content of a file to the standard input
of that program, hence attempting to extract data from std::cin will
/not/ prompt for the user input.
The process of successfully extracting the data from std::cin proves
that all the input process (including std::cin getting the data,
whatever the source) have been successful.
The problem is that you're excluding the last step of the process (the
extraction) from the whole input process. Besides, once more, the OP was
interested exactly in this last step and all the replies (except yours)
were focused about it.
It's quite clear you refuse to acknowledge input occurs at a lower level
and are shifting the context of input, given the process as a whole.
EH?
I said stream->variable, and you say no it's "the variable getting the
data from the stream."
No, you said I was shifting the context. Your sentence as a whole is
wrong, this is what I was arguing about: I was not shifting the context,
the context was already about the variable getting the data.
It's exactly the same thing yet you disagree, this is total nonsense.
The problem you are twisting many things out of context and writing in a
manner that is not true of the words.
I'm not, of course. You just misinterpreted my words.
<citation>
27.6.1.2.2 Arithmetic Extractors [lib.istream.formatted.arithmetic]
operator>>(short& val);
operator>>(unsigned short& val);
operator>>(int& val);
operator>>(unsigned int& val);
operator>>(long& val);
operator>>(unsigned long& val);
operator>>(float& val);
operator>>(double& val);
operator>>(long double& val);
operator>>(bool& val);
operator>>(void*& val);
As in the case of the inserters, these extractors depend on the
locale€s num_get<> (22.2.2.1) object to perform parsing the input
stream data. These extractors behave as formatted input functions (as
described in 27.6.1.2.1).
</citation>
Your reaction to the above was to snip all the discussion away, to
tell me that I'm a fool and that I'm misinterpreting the Standard.
Because you ARE misinterpreting these words.
If you have half a brain you will see that these words use input in the
same context I do. When they say "formatted input function" they are
using input in the context of
input data--> stream.
or
input data--> program.
There is no indication here that the authors of the standards use input
in the context of stream-> variable, as you imply.
You have posted some quote from the standards and are arguing, in a
manner that would suggest, that it supports your argument. The text you
posted actually reinforces how wrong you are.
You really really have no clue about all of this. Let's cite another
passage of the standard:
You're be aswell citing a passage from the old testament , it aint gonna
help you if you are fundamentally wrong.
Here lies a very important point.
These groups are about the C and the C++ languages. The Standards of
these two languages determine what is "right" and what is "wrong", when
speaking about these languages.
If you don't accept this, there is really no point in discussing with you.
27.6.1.1 Class template basic_istream [lib.istream] p. 2
<citation>
Two groups of member function signatures share common properties: the
formatted input functions (or extractors) and the unformatted input
functions. [...]
</citation>
Are you using this to enforce your argument that the original context of
input is stream->object?
Exactly, by using the above and by using the exact words of the OP. The
Standard defines the extraction as an input operation, and the OP was
concerned exactly about the extraction.
I can only deduce from this that you are indeed trying to shift the
context of input but you don't make it clear exactly what your argument is.
If this is your argument please see my comment above re 'the process as
a whole'.
Same for me, please read again all of the above. Besides, if you don't
accept the Standard this is really going to be better dropped off.
Nobody said it wasn't. Period
Well, I must cite your words again:
You say "we" speak of input as being the step operated by the >>
operator. This seems to be the problem as the function of the >>
operator is not what is meant by input. Well at least not in 99% of
respected programming texts.
So, weren't you saying that the extraction cannot be intended as "input"?
You questioned this more than once. Do you need more verbatim quotes
from your posts about this? I have a lot handy.
I find your general disdaining manner quite insulting.
You're failing to prove that I've insulted you, that demonstrates that
you have insulted me without any reasonable motivation.
You seem lost without your gang.
You missed the point, but you're somewhat right, I don't need any
external support, the Standard and the rules of the English language are
more than enough.