|
-
April 6th, 2009, 09:08 PM
#1
problem compiling with g++
The code below compiles and runs without any errors in Visual C++ 2008 but I have to show it to my professor on computers running Solaris. I try to compile with g++ and get the mess below
classes.h
Code:
#ifndef _CLASSES_H_
#define _CLASSES_H_
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
class Job{
private:
string name;
int startTime;
int endTime;
int runTime;
int priority;
int turnAround;
public:
Job():name(""),startTime(0),endTime(0),runTime(0),priority(0),turnAround(0){}
Job(string NAME, int START):name(NAME),startTime(START),endTime(0),runTime(0),priority(0),turnAround(0){}
Job(string NAME, int START, int PRIORITY):name(NAME),startTime(START),endTime(0),
runTime(0),priority(PRIORITY),turnAround(0){}
string getName(){return name;}
void setName(string NAME){name=NAME;}
int getStart(){return startTime;}
void setStart(int START){startTime=START;}
int getEnd(){return endTime;}
void setEnd(int end){endTime=end;}
int getRunTime(){return runTime;}
void setRunTime(int RT){runTime=RT;}
int getPriority(){return priority;}
void setPriority(int PRIORITY){priority=PRIORITY;}
int getTurnAround(){return turnAround;}
void setTurnAround(int TA){turnAround=TA;}
};
#endif
mainprog.cpp
Code:
#include"classes.h"
void display(vector<Job>);
void FCFS(vector<Job>);
void SJN(vector<Job>);
void Priority(vector<Job>);
bool sizeSort(Job & lhs, Job & rhs){return lhs.getRunTime() < rhs.getRunTime();} //for SJN sort
bool prioritySort(Job & lhs, Job & rhs){return lhs.getPriority() < rhs.getPriority();} //for priority sort
int main(){
vector<Job> jobs;
int jobNumber = 0;
//get number of jobs
cout << "Enter the number of jobs: ";
cin >> jobNumber;
jobs.resize(jobNumber);
//get job info
for(int i=0;i<jobs.size();i++){
string tempName;
int tempStart;
int tempPriority;
int tempRun;
cout << "Enter the name for job number " << i+1 << ": ";
cin >> tempName;
jobs[i].setName(tempName);
cout << "Enter the start time for " << jobs[i].getName() << ": ";
cin >> tempStart;
jobs[i].setStart(tempStart);
cout << "Enter time required for job execution: ";
cin >> tempRun;
jobs[i].setRunTime(tempRun);
cout << "Enter job priority: ";
cin >> tempPriority;
jobs[i].setPriority(tempPriority);
}
FCFS(jobs);
SJN(jobs);
Priority(jobs);
return 0;
}
void display(vector<Job> jobVec){
cout << "Job:\tStart:\tEnd:\tJob Turnaround:"<< endl;
cout << "____\t______\t____\t_______________"<<endl;
for(int j=0;j<jobVec.size();j++){
cout << jobVec[j].getName() << " \t" << jobVec[j].getStart() <<
" \t" << jobVec[j].getEnd() << " \t" << jobVec[j].getTurnAround() << endl;
}
}
void FCFS(vector<Job> jobList){
int clock = 0;
double avgTurn =0;
for(int i =0;i<jobList.size();i++){
clock += jobList[i].getRunTime();
jobList[i].setEnd(clock);
jobList[i].setTurnAround(jobList[i].getEnd() - jobList[i].getStart());
avgTurn += jobList[i].getTurnAround();
}
avgTurn /= jobList.size();
cout << "\t\t\tFCFS" << endl;
display(jobList);
cout << "The average turnaround time is: " << avgTurn << endl;
}
void SJN(vector<Job> jobList){
sort(jobList.begin()+1,jobList.end(),sizeSort);
int clock = 0;
double avgTurn =0;
for(int i =0;i<jobList.size();i++){
clock += jobList[i].getRunTime();
jobList[i].setEnd(clock);
jobList[i].setTurnAround(jobList[i].getEnd() - jobList[i].getStart());
avgTurn += jobList[i].getTurnAround();
}
cout << "\t\t\tSJN" << endl;
display(jobList);
cout << "The average turnaround time is: " << avgTurn/jobList.size() << endl;
}
void Priority(vector<Job> jobList){
sort(jobList.begin(),jobList.end(),prioritySort);
int clock = 0;
double avgTurn =0;
for(int i =0;i<jobList.size();i++){
clock += jobList[i].getRunTime();
jobList[i].setEnd(clock);
jobList[i].setTurnAround(jobList[i].getEnd() - jobList[i].getStart());
avgTurn += jobList[i].getTurnAround();
}
cout << "\t\t\tPriority" << endl;
display(jobList);
cout << "The average turnaround time is: " << avgTurn/jobList.size() << endl;
}
errors:
Code:
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/../../../../include/g++-3/stl_algo.h: In function `const class Job & __median<Job, bool (*)(Job &, Job &)>(const Job &, const Job &, const Job &, bool (*)(Job &, Job &))':
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/../../../../include/g++-3/stl_algo.h:1304: instantiated from `__introsort_loop<Job *, Job, int, bool (*)(Job &, Job &)>(Job *, Job *, Job *, int, bool (*)(Job &, Job &))'
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/../../../../include/g++-3/stl_algo.h:1332: instantiated from here
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/../../../../include/g++-3/stl_algo.h:64: conversion from `const Job' to `Job &' discards qualifiers
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/../../../../include/g++-3/stl_algo.h:64: conversion from `const Job' to `Job &' discards qualifiers
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/../../../../include/g++-3/stl_algo.h:65: conversion from `const Job' to `Job &' discards qualifiers
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/../../../../include/g++-3/stl_algo.h:65: conversion from `const Job' to `Job &' discards qualifiers
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/../../../../include/g++-3/stl_algo.h:67: conversion from `const Job' to `Job &' discards qualifiers
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/../../../../include/g++-3/stl_algo.h:67: conversion from `const Job' to `Job &' discards qualifiers
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/../../../../include/g++-3/stl_algo.h:71: conversion from `const Job' to `Job &' discards qualifiers
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/../../../../include/g++-3/stl_algo.h:71: conversion from `const Job' to `Job &' discards qualifiers
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/../../../../include/g++-3/stl_algo.h:73: conversion from `const Job' to `Job &' discards qualifiers
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/../../../../include/g++-3/stl_algo.h:73: conversion from `const Job' to `Job &' discards qualifiers
I cant find the error. I know its happening in the algorithm STL because Im passing a the wrong data type but I cant find it.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|