Как я могу проверить, скомпилирован ли шаблон? - PullRequest
1 голос
/ 04 июня 2011

Есть ли простой способ проверить, был ли мой шаблон оптимизирован? После использования #define HIDE_IT код в игре ниже. Я уверен, что этот код оптимизирован, поэтому я получаю 0 накладных расходов при определении Property<SomeType>, но я хотел бы проверить, если это возможно (без перехода в сборку. Тривиальный код достаточно сложен для чтения после того, как оптимизатор пройдет через него)

template <class T>
class Property {
    T v;
    Property(Property&p) { }
public:
    Property() {}
    T operator=(T src) {
        v = src; return v; 
    }

    operator T() const { 
        return v;
    }
    T operator->() { return v; }
    T operator++() { return ++v; }
    template<class U>
    T operator+=(U u) { return v+=u; }
    T get() { return v; }
}

1 Ответ

5 голосов
/ 04 июня 2011

Нет другого пути, кроме как посмотреть на сборку. Единственный способ его «оптимизировать» - встроить эти функции, и вы можете проверить это, только взглянув на источник.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...