`ATOMIC_JOIN(prefix, detail_platform)` is an macro which will output some string as follows:

> 
> base/atomic/gcc\_gnu\_x64
> 
> 
> 

in another macro `ATOMIC_DETAIL_HEADER`, which output expected to be:

> 
> "base/atomic/gcc\_gnu\_x64.hpp" // notice: double quotes included in the output
> 
> 
> 

I try to write the `ATOMIC_DETAIL_HEADER`, such as： 

```
#define ATOMIC_DETAIL_HEADER(prefix) "ATOMIC_JOIN(prefix, ATOMIC_DETAIL_PLATFORM).hpp"

#define ATOMIC_DETAIL_HEADER(prefix) \"ATOMIC_JOIN(prefix, ATOMIC_DETAIL_PLATFORM).hpp\"

#define ATOMIC_DETAIL_HEADER(prefix) "##ATOMIC_JOIN(prefix, ATOMIC_DETAIL_PLATFORM).hpp##"

```

... failed!

but if i hope output is:

> 
> `<base/atomic/gcc_gnu_x64.hpp>`
> 
> 
> 

The follow macro define can do right thing:

`#define ATOMIC_DETAIL_HEADER(prefix) <ATOMIC_JOIN(prefix, ATOMIC_DETAIL_PLATFORM).hpp>`