Boost logo

Boost :

Subject: Re: [boost] [algorithm][hex] function hex_char_to_int in unnamed namespace in header file
From: Marshall Clow (mclow.lists_at_[hidden])
Date: 2012-11-27 14:41:31


On Nov 27, 2012, at 9:55 AM, Felipe Magno de Almeida <felipe.m.almeida_at_[hidden]> wrote:

> Hello,
>
> AFAIK, unnamed namespaces are dangerous in headers. There is a
> commentary just above the function definition:
>
> // this needs to be in an un-named namespace because it is not a template
> // and might get included in several compilation units. This could cause
> // multiple definition errors at link time.
>
> But it seems the better thing would be to define it inline. It is
> exactly because it can be used in several
> translation units that it can cause an ODR violation if defined
> in a unnamed namespace AFAIK.

I have no problem with declaring it inline, but that's just a suggestion.
The compiler is completely free to generate code for it out-of-line.

-- Marshall

Marshall Clow Idio Software <mailto:mclow.lists_at_[hidden]>

A.D. 1517: Martin Luther nails his 95 Theses to the church door and is promptly moderated down to (-1, Flamebait).
        -- Yu Suzuki


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk