Шаблон функции-члена вложенного класса в классе шаблона - PullRequest
0 голосов
/ 14 июля 2020

Я возился с шаблонами в MSV C 2019 и обнаружил следующую ситуацию:

template <class T>
class A {
    struct B;
}

template <>
struct A<int>::B {
    template <class U>
    void f(U u);    
}

template <class U>
void A<int>::B::f(U u) {

}

int main() {
    return 0;
}

, которая вызывает следующую ошибку компилятора:

C2244 не может сопоставить определение функции в существующее объявление

Мой вопрос: могу ли я иметь шаблон класса с вложенной структурой, а затем определить эту структуру только для одной специализации этого включающего класса, чтобы структура имела шаблон функция-член?

Obs1: Во-первых, я думал, что это связано с тем, что шаблон A с int еще не создан, но добавление явного экземпляра A с параметром шаблона int не помогает. Obs2: определение встроенного f внутри тела класса действительно решает проблему, однако я хочу специализироваться на f.

английский sh не является моим основным языком, простите меня за любые ошибки, которые я мог совершить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...