Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не компилируется пример с использованием boost 
:(
    Опции темы
tumanovalex
  Дата 12.8.2014, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 3.1.2005

Репутация: нет
Всего: нет



Visual Studio 10, Windows 7,  установлена библиотека boost для Visual C++ 2010 (файл boost_1_55_0-msvc-10.0-32.exe) Решил попробовать использовать boost. Выбрал пример 10.19 чтения содержимого каталога из книги "C++.Сборник рецептов":
Код

#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/fstream.hpp>
#include <boost/filesystem/path.hpp>

using namespace std;
using namespace boost::filesystem;

int main(int argc, char** argv) 
{
  if (argc < 2) 
  {
    cerr << "Usage: " << argv[0] << " [dir name]\n";
    _getch();
    return(EXIT_FAILURE);
  }
  path fullPath = system_complete(path(argv[1], native));       
  if (!exists(fullPath)) 
  {
    cerr << "Error: the directory " << fullPath.string( ) << " does not exist.\n";
    _getch();
    return(EXIT_FAILURE);
  }
  if (!is_directory(fullPath))  
  {
    cout << fullPath.string( ) << " is not a directory!\n"; 
    _getch();
    return(EXIT_SUCCESS);
  }
  directory_iterator end;
  for (directory_iterator it(fullPath); it != end; it++)
  {
    cout << it -> leaf();
    if (is_directory(*it))
      cout << " (dir)\n";
  }
  return(EXIT_SUCCESS);
}
Получаю сообщение: "error C2039: 'leaf' : is not a member of 'boost::filesystem::directory_entry'
Функция возвращения имени файла leaf() описана в файле boost/filesystem/path.hpp, который я включил в проект. Замена leaf на filename не помогла. Подскажите, пожалуйста, как исправить ошибку. Проект прилагаю.

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  CppSolution.zip 2,23 Kb
PM MAIL   Вверх
EnergoHokum
Дата 12.8.2014, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 600
Регистрация: 10.11.2006
Где: Россия, Ставропол ь

Репутация: нет
Всего: 6



Во первых, убрать <conio.h>, бо он сильно-сильно устаревший.

Во вторых, скорее всего, надо сказать ему

Код

cout << it->path().string();


т.к. directory_iterator хранит внутри себя объект directory_entry, из него можно уже получить объект path через соответствующую функцию, а строковое представление добывается из path через функцию string.

Компилировать не пробовал, но похоже, что должно быть так.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0401 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.