Solver switching support & implementation of Nesterov's accelerated grad...

...ient and AdaGrad
std::unique_ptr is not compatible with nvcc yet, indeed. Would be cool if it is supported though, since shared_ptr in this case does not really make sense (it should actually be a unique_ptr since no sharing takes place).

One option is to cleanly separate cuda functions from the main c++ code, and use nvcc to only compile that part - not sure how easy it is, though.

http://stackoverflow.com/questions/21457974/can-i-use-c11-in-the-cu-files-cuda5-5-in-windows7x64-msvc-and-linux64-gc