реклама на сайте
подробности

 
 
> C++ -массив произвольного размера без new, как?
WHALE
сообщение Nov 1 2011, 13:14
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Пытаюсь через шаблон:
Код
****************************************************************************/
           template <typename  T, const unsigned char buffer_size>
  class TBASE_UART: public TBASE_SERIAL_INTERFASE
  public:
              TBASE_UART (const unsigned char N_uart,  
                         const unsigned char tx_rx_yart,
                         const unsigned char mode_uart=0x86,  
                         const unsigned char baud_rate_uart=0x33 ):
                         TBASE_SERIAL_INTERFASE(buffer_size)  
.....
private:
   T data_read_buffer[buffer_size];

Пытаюсь инстанцировать
  TBASE_UART <unsigned char, 20> uart0  (0, 0X98);

Получаю Error[Pe028]: expression must have a constant value .
IAR AVR 6.3

Я не прав и так нельзя в принципе или это как-то лечится?


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergeeff
сообщение Nov 2 2011, 07:31
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Ну если все причесать

Код
template <typename  T, const unsigned char buffer_size>
class TBASE_UART
{
public:
    TBASE_UART (const unsigned char N_uart,  
        const unsigned char tx_rx_yart,
        const unsigned char mode_uart=0x86,  
        const unsigned char baud_rate_uart=0x33 ) {
        m_uart = N_uart;
        m_tx_rx_yart = tx_rx_yart;
    };

private:
    T data_read_buffer[buffer_size];
    unsigned char m_uart;
    unsigned char m_tx_rx_yart;
};


то работает.

P.S. Да, не плохо бы поправить на INTERFACE.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 02:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01362 секунд с 7
ELECTRONIX ©2004-2016