Вы сами пробовали устранять неисправности?
Я могу воспроизвести сбой, используя приведенный выше исходный код, как вы описываете. Конечно, я получаю пару предупреждений:
- "IntelliSense: ни один экземпляр перегруженной функции" f "не соответствует списку аргументов"
- "IntelliSense: слишком мало аргументов в вызове функции"
оба ссылаются на эту строку:
auto v = f(m_Suite);
Еще несколько секунд устранения неполадок обнаруживает, что, закомментировав весь класс XTest
, код компилируется и выполняется без проблем (и, самое главное, без сбоя компилятора). Это говорит мне (и должно сказать вам), что проблема явно лежит где-то в классе XTest
.
Вы не можете не задаться вопросом, имеет ли это какое-то отношение к генерируемым ошибкам компилятора.
Хорошо, как насчет того, чтобы просто закомментировать ту единственную строку, которая выдает ошибки компилятора? Что ты знаешь! Код компилируется и выполняется просто отлично!
Итак, менее чем за минуту мы сузили преступника до одной строки кода. Я не собираюсь тратить время на то, чтобы точно понять, что делает весь ваш код, хотя, так как я думаю, что вы можете взять это отсюда сейчас, когда вы точно знаете, где сконцентрировать свои усилия. Начните с исправления этих ошибок IntelliSense и посмотрите, компилируется ли ваш код без сбоя компилятора.