私はblitz ++初心者です。これまでのところ、とても良いが、私は以下のコードでコメントアウト行がなぜこのBlitz ++コードはコンパイルされませんか?
error: conversion from ‘blitz::_bz_tinyMatExpr<blitz::_bz_tinyMatrixMatrixProduct<double, double, 3, 3, 3, 3, 1, 3, 1> >’ to non-scalar type ‘const m33’ requested
でコンパイルに失敗した理由を私はDebianの/レニー(G ++ 4.3.2、ブリッツ0.9)によ少し当惑しています。 は、ここでは、コードです:動作するように取得する方法はありますかどうかを知ることは素晴らしいことだので
#include <blitz/blitz.h>
#include <blitz/array.h>
#include <blitz/matrix.h>
#include <blitz/matexpr.h>
#include <blitz/tinymat.h>
#include <blitz/tinymatexpr.h>
#include <blitz/tinyvec.h>
#include <blitz/tinyvec-et.h>
#include <blitz/vector.h>
#include <blitz/vector-et.h>
typedef blitz::TinyVector<double,3> v3;
typedef blitz::TinyMatrix<double,3,3> m33;
int main(int,char**)
{
const m33 a;
const m33 b;
m33 c;c=blitz::product(a,b); // Compiles OK
//const m33 d=blitz::product(a,b); // Fails to compile.
return 0;
}
は、私は、柄へのconst - EDになるのが好きです(ブリッツ++での経験は、今のところそれがあります示唆しますちょうど右のピックの問題が含まれています...)。
const m33 d(blitz :: product(a、b)); (唯一の推測私は暴動を言う) –
いいえ...私はそれを試みた;同じエラー。 – timday