Включить определенную функцию из заголовочного файла в код на C++

В Python можно импортировать определенные наборы функций из разных модулей, а не импортировать весь файл

например:

Вместо того, чтобы использовать import math и используя print math.sqrt(4), импортируя функцию напрямую:

from math import sqrt
print sqrt(4)

И это работает просто отлично.


Где как в C а также C++нужно включать весь заголовочный файл, чтобы иметь возможность использовать только одну функцию, которую он предоставляет. Например, в C++

#include<iostream>
#include<cmath>
int main(){
    cout<<sqrt(4);
    return 0;
}

C Код также будет похож (не то же самое).


Возможно ли, что так же, как это было в случае с Python, можно включить в программу только одну функцию из заголовочного файла?
пример: включая только sqrt() функция от cmath?

Можно ли это сделать?

1 ответ

Решение

Нет, это невозможно. В C++ отсутствует настоящая модульная система, поэтому у нас остались препроцессорные включения. Предложение добавить новый тип модульной системы не попало в C++11. См. Модули C++ - почему они были удалены из C++0x? Вернутся ли они позже? для получения дополнительной информации об этом предложении.

Если речь идет о вашей собственной библиотеке, ваш единственный шанс - разбить библиотеку на более мелкие независимые библиотеки. Если библиотека не ваша и / или вы не можете ее изменить, вам придется с ней жить. Но в чем вообще проблема?

Другие вопросы по тегам