Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

matexp.cc cannot compile with g++ #9

Open
mahmutbilgen opened this issue Jan 17, 2018 · 1 comment
Open

matexp.cc cannot compile with g++ #9

mahmutbilgen opened this issue Jan 17, 2018 · 1 comment

Comments

@mahmutbilgen
Copy link

When I compile the matexp.cc with g++ I get belows errors.

[mbilgen@centos7 linux-tracing-workshop]$ g++  matexp.cc -g -o matexp
matexp.cc: In member function ‘matrix<T> matrix<T>::operator+(const matrix<T>&) const’:
matexp.cc:26:19: error: ‘invalid_argument’ is not a member of ‘std’
             throw std::invalid_argument("matrix dimensions don't match");
                   ^
matexp.cc:27:14: error: ‘result’ does not name a type
         auto result = *this;
              ^
matexp.cc:30:28: error: there are no arguments to ‘result’ that depend on a template parameter, so a declaration of ‘result’ must be available [-fpermissive]
                 result(i, j) += other(i, j);
                            ^
matexp.cc:30:28: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
matexp.cc:31:16: error: ‘result’ was not declared in this scope
         return result;
                ^
matexp.cc: In member function ‘matrix<T> matrix<T>::operator*(const matrix<T>&) const’:
matexp.cc:35:19: error: ‘invalid_argument’ is not a member of ‘std’
             throw std::invalid_argument("multiplication implemented only "
                   ^
matexp.cc:38:19: error: ‘invalid_argument’ is not a member of ‘std’
             throw std::invalid_argument("matrix dimensions don't match");
                   ^
matexp.cc: In constructor ‘exponentiator<T>::exponentiator(matrix<T>, int)’:
matexp.cc:55:14: error: ‘move’ is not a member of ‘std’
         mat_(std::move(mat)), exponent_(exp) {
              ^
matexp.cc: In member function ‘matrix<T> exponentiator<T>::operator()()’:
matexp.cc:58:14: error: ‘a’ does not name a type
         auto a = mat_;
              ^
matexp.cc:60:13: error: ‘a’ was not declared in this scope
             a = a * mat_;
             ^
matexp.cc:62:16: error: ‘a’ was not declared in this scope
         return a;
                ^
matexp.cc: In member function ‘matrix<float> io::read()’:
matexp.cc:72:19: error: ‘invalid_argument’ is not a member of ‘std’
             throw std::invalid_argument("unable to open input file");
                   ^
matexp.cc:77:23: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11 [enabled by default]
         matrix<float> res{ rows, cols };
                       ^
matexp.cc:77:39: error: in C++98 ‘res’ must be initialized by constructor, not by ‘{...}’
         matrix<float> res{ rows, cols };
                                       ^
matexp.cc: In member function ‘void io::exp_to(std::string, int)’:
matexp.cc:96:14: error: ‘mat’ does not name a type
         auto mat = read();
              ^
matexp.cc:97:34: error: ‘mat’ was not declared in this scope
         exponentiator<float> exp(mat, rounds);
                                  ^
matexp.cc: In function ‘int main(int, char**)’:
matexp.cc:112:26: error: ‘atoi’ is not a member of ‘std’
     prog.exp_to(argv[3], std::atoi(argv[2]));
                          ^

@goldshtn
Copy link
Owner

Can you try adding -std=c++11 please? Also, which version of gcc are you using?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants