id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
27	fold, foldSeg and scan fail to compile for tuple types	seanl	tmcdonell	"The fold.inl fails to compile when {{{TyOut}}} is a {{{struct}}}.
This is because the shared array {{{s_data}}} is declared with the {{{volatile}}} keyword to enable the warp level programming, and there is no copy constructor and no assignment operator defined for copying or assigning a value of the type {{{TyOut}}} to a variable of type {{{volatile TyOut}}}.

The following error messages are generated by nvcc.
{{{

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(71): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(74): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(74): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(75): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(75): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(76): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(76): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(84): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(84): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(85): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(85): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(86): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(86): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(87): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(87): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(88): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(88): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(89): error: class ""TyOut"" has no suitable copy constructor

$HOME/.cabal/share/accelerate-0.8.0.0/fold.inl(89): error: no operator ""="" matches these operands
            operand types are: volatile TyOut = TyOut
"	defect	closed	major		CUDA backend	0.8.0.0	fixed		
