struct foo {
    virtual int bleh() {
        return 42;
    }
};


template<typename T>
struct bar : public foo {

};

template<>
int bar<char>::bleh() {
    return 12;
}

int main() {
    bar<char> x;
    return x.bleh();
}
