Я использую Visual Studio (не уверен, что это уместно здесь), я хочу определить typedef для vector<int>::size_type
в заголовочном файле.
Это мой заголовок:
#ifndef UTILS_H
#define UTILS_H
#include "pch.h"
#include <vector>
typedef int myint;
typedef vector<int>::size_type vi_sz;
#endif //UTILS_H
Если я пытаюсь его построить, я получаю следующие ошибки:
...\utils.h(8): error C2143: syntax error: missing ';' before '<'
...\utils.h(8): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
...\utils.h(8): error C2039: 'size_type': is not a member of '`global namespace''
Если я переместу typedef vector<int>::size_type vi_sz;
в исходный файл, тогда все в порядке. Обратите внимание, что мне не нужно делать это с typedef int myint;
Есть ли способ определить этот тип typedef в заголовке, чтобы избежать необходимости определять его для каждого исходного файла, или это в некотором роде плохая практика?