Мы можем объявлять функции внутри функций (мне нужна локальная переменная, но она анализирует как объявление функции):
struct bvalue;
struct bdict {
    bdict(bvalue);
}
struct bvalue {
    explict operator bdict() const;
}
struct metainfo {
    metainfo(bdict);
}
void foo(bvalue v) {
    metainfo mi(bdict(v)); // parses as function declaration
    metainfo mi = bdict(v); // workaround
                            // (this workaround doesn't work in the presence of explicit ctors)
}
Являются единственными причинами "потому что это упрощает синтаксический анализатор" и "потому что стандарт говорит так", или есть ли неявное использование для этого?
