Как создать структуру, которая создает разное количество переменных на основе своих входных данных

#c #struct

#c #структура

Вопрос:

Я хочу иметь базовую структуру, которая будет содержать только x количество переменных одного и того же типа. Это позволяет мне создавать дочерние структуры, которые можно назвать как-то иначе, например, векторной структурой или структурой позиции. Мой вопрос: есть ли способ изменить количество переменных, которые экземпляр basic_struct будет создавать с помощью ввода функции?

Скажем:

 template<typename _Ty>
struct Vector2 : basic_struct<_Ty>(2) {/*vector code here*/}
 

и это создаст структуру с 2 переменными, в то время как, если я укажу:

 template<typename _Ty>
struct Vector3 : basic_struct<_Ty>(3) {/*vector code here*/}
 

это создаст векторную структуру с тремя переменными.

Заранее спасибо за информацию, которую вы можете мне дать.

Комментарии:

1. Что вы подразумеваете под «в C или C «?. Будут ли приемлемы Java или Python?

2. @cigien К сожалению, нет, мой проект на данном этапе только на C / C , и я действительно не знаю Java или Python.

3. Хорошо, затем удалите тег C из вопроса и заголовка. Также обратите внимание, что C не имеет шаблонов. Вам в значительной степени придется полагаться на макросы, чтобы сделать это за вас.

4. @cigien извините, да, я знаю, что C не использует шаблоны, и я забыл сказать выше, что проект написан на C с аспектами C.

5. basic_struct действительно звучит как массив. Почему бы просто не использовать массив?

Ответ №1:

Я думаю, что вы хотите std::array<T, N> .