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

 
 
> Использование шаблонных методов С++
SergSit
сообщение Feb 2 2014, 19:57
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 173
Регистрация: 9-12-05
Пользователь №: 12 031



Есть код:

Код
class A
{
  public:

    static void Set( unsigned param )
    {
      GPIOA->ODR = param;
    }
};



template< class ClassTemp1, uint8_t number >
class B
{
  
  public:
        enum Config
    {
      Fisrt,
      Second,
    };

    static void SetConfig( Config param )
    {
      ClassTemp1::Set( param );
    }
    template< Config param >
    static void SetConfig( )
    {
      ClassTemp1::Set( param );
    }
};

template< class Port >
class C
{

  public:

    static void Init( )
    {
      Port::SetConfig< Port::Fisrt >( );
      Port::SetConfig( Port::Fisrt );
    }

};

typedef B< A, 14 > D;
typedef C< D > Proba;


int main( void )
{
  Proba::Init( );
    
  D::SetConfig( D::Fisrt );
  D::SetConfig<D::Fisrt>(  );
}


Компилятор дает ошибку на строчке с методом Port::SetConfig< Port::Fisrt >( ); в методе C::Init():
compiling main.cpp...
src\main.cpp(99): error: #29: expected an expression
Port::SetConfig< Port::Fisrt >( );

Хотя если напрямую вызывать методы из класса D ошибок нет.

В чем моя ошибка?
Go to the top of the page
 
+Quote Post



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

 


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


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