VJ wrote:
mlimber wrote:
>John Goche wrote:
>>Hello,
I have come across the following directive but I don't see a class
name specified in front of the ::Check function. Does anyone
know what this means and how the directive is supposed to work?
#define TEST2(aValue, aExpected) ::Check(aValue, aExpected,
__LINE__)
>>>Check is a function in the global namespace.
Can it be used for functions in the nameless namespace? Or is it more
for global functions?
Yes, it can. Unnamed/nameless/anonymous namespace names are inserted
into the scope in which that namespace appears. The way anonymous
namespace
// some scope
namespace {
// some names declared
}
behaves is similar to
// some scope
namespace SomeWeIrD_and_UNIQUEnaME {}
using namespace SomeWeIrD_and_UNIQUEnaME;
namespace SomeWeIrD_and_UNIQUEnaME {
// some names declared
}
(see 7.3.1.1/1); only the weird and unique name is different for
every translation unit and is *not* available to the programmer.
>
For example:
#include <iostream>
using namespace std;
namespace
{
void f()
{
cout<<"222222222222"<<endl;
}
}
int main()
{
::f();
}
This will print 2's
.... As it should.
V
--
Please remove capital 'A's when replying by e-mail
I do not respond to top-posted replies, please don't ask