Форум программистов, компьютерный форум CyberForum.ru

Error C2039: list: не является членом "std" - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.60
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
02.02.2013, 17:02     Error C2039: list: не является членом "std" #1
итак:
делаю MFC проект. Собственные функции пишу в отдельном MyLibrary.cpp к которому еще прилагается MyLibrary.h.
функция написана, компилится, а вот в h файле вылетают ошибки

Код
error C2039: list: не является членом "std"
error C2143: синтаксическая ошибка: отсутствие ";" перед "<"
error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
MyLibrary.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "StdAfx.h"
#include <Windows.h>
#include <list>
 
class Computer
{
public:
    int num;
    CString ip;
    CString mac;
    CString nbn;
    CString comment;
};
 
bool ReadItem (HANDLE hFile, int &num, CString &ip, CString &mac, CString &nbn, CString &comment)
{
// содержимое не важно
    return true;
}
 
std::list<Computer> ReadDB (HANDLE hFile)
{
    Computer    obj;
    std::list<Computer> items;
 
    while(ReadItem(hFile, obj.num, obj.ip, obj.mac, obj.nbn, obj.comment))
    {
        items.push_back(obj);
    }
 
    return items;
}
MyLibrary.h
C++
1
2
3
4
5
6
7
# ifndef MyLibrary_H
# define MyLibrary_H
 
HANDLE Open_File();
std::list<Computer> ReadDB (HANDLE hFile);
 
# endif
переписал все это дело в один файл и проект консольный зафигачил вроде все ок, а вот в разбивке по файлам не работает
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
02.02.2013, 17:08     Error C2039: list: не является членом "std" #2
#include <list> переместить из cpp файла в хедер MyLibrary.h
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
02.02.2013, 18:18  [ТС]     Error C2039: list: не является членом "std" #3
просто перемещение не решает проблему,
скопировал инклуду в MyLibrary.h - появилась ошибка:
Код
error C2065: Computer: необъявленный идентификатор
зы. истина вот уже где-то рядом, но я в упор не понимаю
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
02.02.2013, 18:19     Error C2039: list: не является членом "std" #4
ах да и класс Computer тоже перенесите
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
02.02.2013, 18:25  [ТС]     Error C2039: list: не является членом "std" #5
если делаю просто перенос, то результат так же как и в случае с переносом include <list> - опять не объявленные идентификаторы.
а вот копирование - оно решает вопрос.

только тут рождается новый вопрос: а вот такое дублирование(копирование) это верно? подозрение, что что-то тут не так
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
02.02.2013, 18:34     Error C2039: list: не является членом "std" #6
MyLibrary.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef MyLibrary_H
#define MyLibrary_H
 
#include <Windows.h>
#include <list>
 
class Computer
{
public:
    int num;
    CString ip;
    CString mac;
    CString nbn;
    CString comment;
};
 
HANDLE Open_File();
std::list<Computer> ReadDB (HANDLE hFile);
 
#endif
MyLibrary.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "StdAfx.h"
#include "MyLibrary.h" 
bool ReadItem (HANDLE hFile, int &num, CString &ip, CString &mac, CString &nbn, CString &comment)
{
// содержимое не важно
    return true;
}
 
std::list<Computer> ReadDB (HANDLE hFile)
{
    Computer    obj;
    std::list<Computer> items;
 
    while(ReadItem(hFile, obj.num, obj.ip, obj.mac, obj.nbn, obj.comment))
    {
        items.push_back(obj);
    }
 
    return items;
}
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
02.02.2013, 18:42  [ТС]     Error C2039: list: не является членом "std" #7
Код
fatal error C1083: Не удается открыть файл включение: MyLibrary.h: No such file or directory
расположение MyLibrary.h там же где и остальные все cpp и h файлы проекта (т.е. по умолчанию)
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
02.02.2013, 18:47     Error C2039: list: не является членом "std" #8
Цитата Сообщение от GBIT Посмотреть сообщение
расположение MyLibrary.h там же где и остальные все cpp и h файлы проекта (т.е. по умолчанию)
а вроект он добавлен? в обозревателе решений он есть?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2013, 20:05     Error C2039: list: не является членом "std"
Еще ссылки по теме:

C++ Error C2039 не является членом Znak
Error C2039: fprintf: не является членом "`global namespace'" C++
Ошибка: map не является членом std:: C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
02.02.2013, 20:05  [ТС]     Error C2039: list: не является членом "std" #9
конечно

другие то функции отрабатывают из MyLibrary.cpp. (просто удалил когда скидывал сюда)

+ в файле ...Dlg.cpp MFC проекта подключен #include "MyLibrary.h" и там все ок

Добавлено через 1 час 13 минут
все. понял где накосячил.

перепутал <> и "". Спасибо!
Yandex
Объявления
02.02.2013, 20:05     Error C2039: list: не является членом "std"
Ответ Создать тему
Опции темы

Текущее время: 05:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru