Доступ к общедоступным членам только для чтения структур во внешних блоках

его частично решенный, но берущий последнее целое число строки дважды. У кого-либо есть решение?

ifstream inputFile;
inputFile.open("lists.txt");

if( getline(inputFile, line);
    istringstream list1_stream(line);
    while (list1_stream)
    {
        list1_stream >> a;
        list1.addNode(a);
    }
    getline(inputFile, line);
    istringstream list2_stream(line);
    while (list2_stream)
    {
        list2_stream >> a;
        list2.addNode(a);
    }

файл содержит:

1 2 3 8

2 4 7 9

вывод:

1 2 3 8 8

2 4 7 9 9

6
задан svick 29 January 2013 в 23:31
поделиться

1 ответ

Обычно, когда люди говорят «это похоже на ошибку в компиляторе», это код для «Я не знаю, что делаю». Однако в этой ситуации это действительно похоже на ошибку.

Компилятор F # делает копию структур за кулисами на случай, если они будут изменены. (Вот почему, даже если вы определяете структуру с изменяемыми полями, вы должны атрибутировать экземпляр этой структуры как изменяемый, прежде чем вы сможете обновить ее поля.) Похоже, что особая магия, происходящая за кулисами, забывает о полях структуры «только для чтения».

Хотя Интернет и StackOverflow - отличное место, где можно попросить помощи по вопросам, связанным с F #, сообщите команде F # обо всех обнаруженных вами ошибках, отправив электронное письмо на fsbugs@microsoft.com .

]
3
ответ дан 17 December 2019 в 18:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: