Disclaimer: Ich habe C++ nie gelernt und verabscheue es. Aber mein Tipp wäre, dass dem Compiler const double* arr nicht weit genug geht – funktioniert es vielleicht mit const double* const arr (oder einer äquivalenten Alternative) besser?
Wie gesagt, bloß geraten, da ich diese bescheuert aussehende Syntax schon öfter gesehen habe und sie ja zu irgendwas gut sein muss.