C/C++-ban nem úgy van, hogy az, hogy 2.0 egy double, és ha egy literalt floatként akarok, az 2.0f, ha meg long doubleként, az 2.0l?
Mellesleg az sem megy (ugyanaz a hibaüzenet), hogy
#include<iostream>
#include<iomanip>
#include<boost/numeric/ublas/vector.hpp>
#include<boost/numeric/ublas/io.hpp>
template<typename T, size_t n> boost::numeric::ublas::vector<T> vecFromArray(const std::array<T, n> x){
boost::numeric::ublas::vector<T> retVal(n);
std::copy(x.begin(), x.end(), retVal.begin());
return retVal;
}
int main(){
boost::numeric::ublas::vector a = vecFromArray({(double)0.0, (double)1.0, (double)2.0});
std::cout << a << std::endl;
return 0;
}