You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#include<stdexcept>// runtime_error
#include<iostream>// cout
#include<strstream>// ostrstream, istrstream
#include<paradiseo/eo/eo>
#include<paradiseo/eo/eoSGA.h>
#include<paradiseo/eo/ga/eoBit.h>
#include<paradiseo/eo/eoPop.h>
#include<paradiseo/eo/eoEvalFuncPtr.h>
#include<paradiseo/eo/utils/eoRndGenerators.h>usingnamespacestd;typedef eoBit<double> Indi;
doublebinary_value(const Indi & _indi)
{
double sum = 0;
for (unsigned i = 0; i < _indi.size(); i++)
sum += _indi[i];
return sum;
}
intmain()
{
constunsignedint SEED = 42; // seed for random number generatorconstunsignedint T_SIZE = 3; // size for tournament selectionconstunsignedint VEC_SIZE = 8; // Number of bits in genotypesconstunsignedint POP_SIZE = 20; // Size of populationconstunsignedint MAX_GEN = 100; // Maximum number of generation before STOPconstfloat CROSS_RATE = 0.8; // Crossover rateconstdouble P_MUT_PER_BIT = 0.01; // probability of bit-flip mutationconstfloat MUT_RATE = 1.0; // mutation rate
rng.reseed(SEED);
// Evaluation: from a plain C++ fn to an EvalFunc Object
eoEvalFuncPtr<Indi> eval(binary_value);
eoPop<Indi> pop;
for (unsignedint igeno=0; igeno<POP_SIZE; igeno++)
{
Indi v; // void individual, to be filledfor (unsigned ivar=0; ivar<VEC_SIZE; ivar++)
{
bool r = rng.flip(); // new value, random in {0,1}
v.push_back(r); // append that random value to v
}
eval(v); // evaluate it
pop.push_back(v); // and put it in the population
}
// sort pop before printing it!
pop.sort();
// Print (sorted) intial population (raw printout)
cout << "Initial Population" << endl;
cout << pop;
return0;
}
The cmake .. command output is:
$ cmake ..
-- The CXX compiler identification is GNU 11.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/filipe/Desenvolvimento/knapsack-paradiseo/build
and the make output is:
$ make -j
[ 50%] Building CXX object CMakeFiles/knapsack-paradiseo.dir/main.cpp.o
In file included from /usr/include/c++/11.2.0/backward/strstream:50,
from /home/filipe/Desenvolvimento/knapsack-paradiseo/main.cpp:3:
/usr/include/c++/11.2.0/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated. [-Wcpp]
32 |#warning \| ^~~~~~~
In file included from /usr/local/include/paradiseo/eo/eo:164,
from /home/filipe/Desenvolvimento/knapsack-paradiseo/main.cpp:5:
/usr/local/include/paradiseo/eo/eoForge.h: In member function‘Op* eoForgeOperator<Itf, Op, Args>::op_constructor(T&)’:
/usr/local/include/paradiseo/eo/eoForge.h:150:32: error: ‘make_from_tuple’ is not a member of ‘std’
150 |return new Op(std::make_from_tuple<Op>(args));| ^~~~~~~~~~~~~~~
/usr/local/include/paradiseo/eo/eoForge.h:150:32: note: ‘std::make_from_tuple’ is only available from C++17 onwards
/usr/local/include/paradiseo/eo/eoForge.h:150:50: error: expected primary-expression before ‘>’ token
150 |return new Op(std::make_from_tuple<Op>(args));| ^
/usr/local/include/paradiseo/eo/eoForge.h: In member function‘void eoForgeVector<Itf, Enable>::add(Args ...)’:
/usr/local/include/paradiseo/eo/eoForge.h:267:56: error: ‘decay_t’ is not a member of ‘std’; did you mean ‘decay’?
267 | auto pfo = new eoForgeOperator<Itf,Op,std::decay_t<Args>...>(| ^~~~~~~| decay/usr/local/include/paradiseo/eo/eoForge.h:267:56: error: ‘decay_t’ is not a member of ‘std’; did you mean ‘decay’? 267 | auto pfo = new eoForgeOperator<Itf,Op,std::decay_t<Args>...>(| ^~~~~~~| decay/usr/local/include/paradiseo/eo/eoForge.h:267:68: error: template argument 3 is invalid 267 | auto pfo = new eoForgeOperator<Itf,Op,std::decay_t<Args>...>(| ^/usr/local/include/paradiseo/eo/eoForge.h: In member function‘void eoForgeVector<Itf, Enable>::setup(size_t, Args ...)’:/usr/local/include/paradiseo/eo/eoForge.h:295:56: error: ‘decay_t’ is not a member of ‘std’; did you mean ‘decay’? 295 | auto pfo = new eoForgeOperator<Itf,Op,std::decay_t<Args>...>(| ^~~~~~~| decay/usr/local/include/paradiseo/eo/eoForge.h:295:56: error: ‘decay_t’ is not a member of ‘std’; did you mean ‘decay’? 295 | auto pfo = new eoForgeOperator<Itf,Op,std::decay_t<Args>...>(| ^~~~~~~| decay/usr/local/include/paradiseo/eo/eoForge.h:295:68: error: template argument 3 is invalid 295 | auto pfo = new eoForgeOperator<Itf,Op,std::decay_t<Args>...>(| ^make[2]: *** [CMakeFiles/knapsack-paradiseo.dir/build.make:76: CMakeFiles/knapsack-paradiseo.dir/main.cpp.o] Erro 1make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/knapsack-paradiseo.dir/all] Erro 2make: *** [Makefile:91: all] Erro 2
It is like the paradiseo compilation is not supporting the make_from_tuple function, despite the building and installation of the framework was correct.
Well, any idea about what is happening here?
All the best;
The text was updated successfully, but these errors were encountered:
Hello, I built and installed paradiseo-3.0.0-beta and now I am having a problem trying to build my own code. Examples below.
CMakeList.txt:
main.cpp:
The
cmake ..
command output is:and the
make
output is:It is like the paradiseo compilation is not supporting the
make_from_tuple
function, despite the building and installation of the framework was correct.Well, any idea about what is happening here?
All the best;
The text was updated successfully, but these errors were encountered: