Re: specifying Namespace for Matrix class?

Markus Mützel <[email protected]> Fri, 15 Oct 2021 17:41:54 +0200
Newsgroups gmane.comp.gnu.octave.general
Message-ID <trinity-c7eb4101-a361-491a-a9f5-52fe16249554-1634312514102@3c-app-gmx-bs17>
Maybe there are some tricks - like using wrappers - that could be used to place those classes in a namespace for your code.

But out of the box, you pretty much hit it: These classes are in the "base" namespace (::) and might collide with other symbols of the same name in the "base" namespace.

Gesendet: Freitag, 15. Oktober 2021 um 16:36 Uhr

Von: "Fritz Sonnichsen" <[email protected]>

An: "Markus Mützel" <[email protected]>

Cc: [email protected]

Betreff: Re: specifying Namespace for Matrix class?

Thanks Markus for your continued help.

Regarding the Matrix Class, I am not a very strong C++ programmer-if the class is not contained in a namespace does this mean there is no way to specify it directly as in:

classname::Matrix ....

I have a huge amount of C++ code with the Matrix class and functions already specified (probably should have used a different more unique name!!!)

Thanks again

Fritz

On Fri, Oct 15, 2021 at 10:18 AM Markus Mützel <[email protected] > wrote:

afaict, the Matrix class is currently not in a namespace:

GNU Octave: Matrix Class Reference

HTH,

Markus

Gesendet: Freitag, 15. Oktober 2021 um 15:25 Uhr

Von: "Fritz Sonnichsen" <[email protected] >

An: [email protected]

Betreff: specifying Namespace for Matrix class?

I am starting with some of the octave sample code (modified below) calling octave from C++. I eventually will have another Matrix class in the code so I need to differentiate by namespace.

I cannot find out which namespace in octave contains "Matrix" but I vaguely recall it is in "math". Obviously I am wrong per this error message:

matr.cpp:11:17: error: ‘Matrix’ is not a member of ‘octave::math’

octave::math::Matrix a_matrix = Matrix (n, n);

Any ideas which namespace it is in so I can qualify it in the code?

Thanks

Fritz

=============CODE=============

#include <iostream>

#include <octave/oct.h>

using namespace octave::math;

int main (void)

{

std::cout << "Hello Octave world!\n";

int n = 2;

octave::math::Matrix a_matrix = Matrix (n, n);

for (octave_idx_type i = 0; i < n; i++)

for (octave_idx_type j = 0; j < n; j++)

a_matrix(i,j) = (i + 1) * 10 + (j + 1);

std::cout << a_matrix;

return 0;

}

---------- We are transitioning to a web based forum for community help discussions at https://octave.discourse.group/c/help


----------
We are transitioning to a web based forum
for community help discussions at
https://octave.discourse.group/c/help