Ok, perhaps saying that it isn't a function per se is a bit strong. The standard refers to constructors as special member functions. Looking at The C++ Standard (ISBN 0-470-84674-7), Chapter 12 Special Member Functions:
Section 12.1 paragraph 1 (pg. 193) starts "Constructors do not have names. A special declarator syntax using an optional sequence of function-specifiers followed by the constructor's class name followed by a parameter list ..." (emphasis added).
Which means that although you declare
1 2 3 4
class Foo {
public:
Foo( int x );
};
The constructor does not have a name (that is, the name of this "function" is not "Foo").
Given that a constructor does not have a name, then you can't take the address of it since there is no identifier to place after the "&".
Section 12.1 paragraph 12 (p. 194) also states "...The address of a constructor shall not be taken."
Yeah, so basically what paragraph 1 is saying is that, since constructors don't have names, the syntax for the constructor declaration has been determined arbitrarily (it could have been anything else, really).
Paragraph 12, which is more to the point of the question, says that constructors have no return type (not even void). This makes sense since they don't really return anything. All they do is initialize a portion of memory. Constructors can only be called from other constructors, at declaration of stack data (as in std::string txt("Hello, World!\n")) or with the 'new' operator in front of them.
Because of this, there really would be no point in getting the address of the constructor.