Is there any way to avoid introducing this define for `_USE_MATH_DEFINES`? I always prefer to avoid modifying the external environment if it is possible.

Instead of using `M_PI`, we could simply use something like

```
namespace thrust
{
namespace detail
{
namespace complex
{

static const double pi = ...;

}
}
}
```

?