Russian Qt Forum
Ноябрь 28, 2024, 18:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с namespace  (Прочитано 3753 раз)
cya-st
Гость
« : Март 04, 2010, 15:05 »

Всем привет.
Есть хидер:
Код:
#ifndef UTILS_H
#define UTILS_H

namespace Utils
{
    static void Func1(int a)
    {
        //Something
    }

    static QString Func2(int iType)
    {
        return something;
    }
}

#endif // UTILS_H
Вызываю функции:
Код:
...
Utils::Func1(0);
...
Utils::Func2(25);
...
Но у меня возникает предупреждение компиляции:
Код:
warning: 'void Utils::Func1(int)' defined but not used
warning: 'QString Utils::Func2(int)' defined but not used
Подскажите пожалуйста как с этим можно бороться?
Записан
Akaiten
Гость
« Ответ #1 : Март 04, 2010, 15:27 »

Так как они определены в .h файле и ещё static, то все .cpp файлы, которые явно или неявно включают .h файл, получают свою собственную копию этих функций. Но не везде они используются, о чём собственно и предупреждает компилятор.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Март 04, 2010, 15:30 »

Не писать static если планируете вызывать Utils::Func1(0) из др. файла. Оставьте в h файле только объявления, тела перенесите в Utils.cpp. Альтернатива: заменить static на inline. Если есть Utils-переменные они должны быть объявлены как extern в Utils.h
Записан
cya-st
Гость
« Ответ #3 : Март 04, 2010, 16:15 »

Реализацию перенес Utils.cpp static убрал. Появляется ошибка:
Код:
:-1: error: collect2: ld returned 1 exit status
Записан
BRE
Гость
« Ответ #4 : Март 04, 2010, 16:21 »

Utils.cpp в проект добавил?
Записан
cya-st
Гость
« Ответ #5 : Март 04, 2010, 16:44 »

После добавления Utils.cpp в проект, проблема решилась. Всем спасибо за ответы.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.042 секунд. Запросов: 23.