Re: how to best use valarrays as constructor arguments
Gerard Kramer wrote:
Victor Bazarov wrote:
Gerard Kramer wrote:
Presently I have some difficulties with the following type of code
which is understandably causing a segfault:
[..]
It will fail at runtime because, as I understand it, mx is a
zero-size valarray and hence mx[1] does not exist.
It *will* fail or it *does* fail?
It *will* fail (by looking at the code) and so it *does* (by compiling
and running it.)
The reason I asked was that I took your code, compiled it and ran it,
and it ran fine on VC++ 2005.
With the exception of using assignment instead of initialisation and
some superfluousness and extraneous whitespace, your code is fine,
AFAICT.
Yet (for a simple numerical code) I would like something similar to
the above to work, i.e. I'd like to pass a valarray of predefined
size to the constructor of a class to initialize a class-member
valarray, say mx, and after reference to mx's elements as mx[0],
mx[1] etc. As a C++ starter I'm confused about the best way to work
around the problem in the code above. Any advice would be welcome.
What problem? Prove to us there is a problem, post the results of
your run, not your speculations. Step through it in a debugger.
Print out the *size* of 'mx' instead of its element. Anyway, do
something, don't just stand there.
I'm sorry? Well, thanks for the reply. As far as I can see I didn't
speculate about anything.
You said "it will fail". Any statement about the future is speculation
by definition. Don't take offence, it just is.
Then you said 'mx is a zero-size valarray'. Have you actually looked?
Have you tried running it under a debugger? Have you tried printing out
the size of the 'mx' valarray?
Just to be clear: There is no problem, but
I am sorry. No problem?
I'd like to learn how to get a certain thing done, namely:
The best way to somehow to use a valarray <double> as an argument of a
class constructor to initialize a class member variable of type
valarray <double>.
I can't see how to do that.
But you *did* that. Aside from small things that don't matter in this
particular case, your code is [supposed to be] working.
That's all. I'm sorry in case that bothered you. Won't happen again.
Nothing bothered me. Nothing to apologise for. You made some statements
that prompted me to ask more questions. Just answer them.
V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask