Boost logo

Boost :

From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2008-02-05 14:50:33


AMDG

John Torjo wrote:
> Steven Watanabe wrote:
>
>> namespaceboost_1_1logging_1_1formatter_1_1convert.html
>> "explain that you can extend the following - since they're
>> namespaces!!! so
>> that you can "inject" your own write function in the
>> convert_format::prepend/or
>> whatever namespace, and then it'll be automatically used!"
>> I'm almost certain that this is wrong. In order to be found by a template
>>
>>
> It's not - see http://torjo.blogspot.com/2007/10/template-construct.html

Ok. I'll be more concrete:

namespace X {

    int foo(int) { return(0); }

    template<class T>
    int bar(const T& t) {
        return(foo(t));
    }
}

class C {
};

namespace X {
    int foo(C) { return(0); }
}

int main() {
    X::bar(C());
}

Como says:

>como -a test.cpp
Comeau C/C++ 4.3.9 (Apr 4 2007 16:51:45) for _MS_WINDOWS_x86_Beta
Copyright 1988-2007 Comeau Computing. All rights reserved.
MODE:strict warnings C++ noC++0x_extensions

"test.cpp", line 9: error: no instance of overloaded function "X::foo"
matches
          the argument list
            argument types are: (const C)
          return(foo(t));
                 ^
          detected during instantiation of "int X::bar(const T &) [with
T=C]"
                    at line 21

1 error detected in the compilation of "test.cpp".

In Christ,
Steven Watanabe


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