using std.algorithm.topN with std.range.zip fails with undefined swap

Nikhil Padmanabhan nikhil.padmanabhan at gmail.com
Tue Dec 17 09:03:00 PST 2013


Hi,

Trying to compile :

import std.stdio, std.range, std.algorithm;

void main() {
	auto a = [2.0,1.0,3.0];
	struct Point {
		double x;
	}
	auto b = [Point(4.0), Point(5.0), Point(6.0)];

	topN!("a[0] < b[0]")(zip(a,b),1);
	//sort!("a[0] < b[0]")(zip(a,b));

	writeln(a,b);
}


std/algorithm.d(8225): Error: template std.algorithm.swap does 
not match any function template declaration.

Swapping out topN with sort works just fine. I assume both sort 
and topN use swap, is there a reason this doesn't work with topN?

Thanks in advance,

-- Nikhil


More information about the Digitalmars-d-learn mailing list