Я использую стандартную библиотеку C ++ в некотором коде C ++ и этот make-файл:
CC=g++
CXXFLAGS=-Wall -Werror -ggdb3 -std=c++11 -pedantic $(OTHERFLAGS)
cpp_sort: cpp_sort.o
g++ -o $@ $(CXXFLAGS) $^
clean:
rm -rf *.o cpp_sort *~
Исходный код:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
void get_input(vector<int>& items, int size) {
for (int i = 0; i < size; ++i) {
int element;
cin >> element;
items.push_back(element);
}
}
void cpp_sort(vector<int>& items) {
sort(items.begin(), items.end());
}
void print_array(vector<int>& items) {
for (auto& item : items) {
cout << item << ' ';
}
cout << endl;
}
int main() {
int size;
cin >> size;
vector<int> items;
items.reserve(size);
get_input(items, size);
cpp_sort(items);
print_array(items);
}
Я звоню так:
make OTHERFLAGS=-pg
запустить программу (где large.txt - длинный список целых чисел):
./cpp_sort <large.txt
и просмотр информации о профилировании:
grof ./cpp_sort
Это нормально и работает, но вызов моих функций скрыт всеми вызовами функций стандартной библиотеки C ++. Есть ли способ исключить вызовы внутренних функций стандартной библиотеки?