0 / 0 / 0
Регистрация: 22.03.2022
Сообщений: 8
1

Ошибка компиляции "error C2988: unrecognizable template declaration/definition"

22.03.2022, 22:12. Показов 207. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <math.h>
using namespace std;
template<typename T>
vector<short> get_digits(T number)
{
    short num_digits = floor(log10(abs(number ? number : 1)) + 1);
    vector<short> digs(num_digits);
    for (; num_digits; num_digits--, number /= 10)
        digs[num_digits - 1] = (number % 10);
    return digs;
}
 
int main()
{
    int n;
    cin >> n;
 
    auto digs = get_digits(n); // получить вектор из цифр числа
    short sum = pow(digs[0], 3) + pow(digs[1], 3); // сумма кубов цифр  
    bool res = (pow(n, 2) == sum * 4);
    cout << boolalpha << res << endl;
    return 0;
}





1>D:\projects\Math\Math\Math.c pp(5,7): error C2988: unrecognizable template declaration/definition
1>D:\projects\Math\Math\Math.c pp(5,7): error C2143: syntax error: missing ';' before '<'
1>D:\projects\Math\Math\Math.c pp(5,7): error C2059: syntax error: '<'
1>D:\projects\Math\Math\Math.c pp(6,1): error C2143: syntax error: missing ';' before '{'
1>D:\projects\Math\Math\Math.c pp(6,1): error C2447: '{': missing function header (old-style formal list?)
1>D:\projects\Math\Math\Math.c pp(17,12): error C2065: 'n': undeclared identifier
1>D:\projects\Math\Math\Math.c pp(19,28): error C2065: 'n': undeclared identifier
1>D:\projects\Math\Math\Math.c pp(19,17): error C3861: 'get_digits': identifier not found
1>D:\projects\Math\Math\Math.c pp(20,27): error C2109: subscript requires array or pointer type
1>D:\projects\Math\Math\Math.c pp(20,45): error C2109: subscript requires array or pointer type
1>D:\projects\Math\Math\Math.c pp(21,21): error C2065: 'n': undeclared identifier
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2022, 22:12
Ответы с готовыми решениями:

Ошибка компиляции: template-id does not match any template declaration
Здравствуйте. Помогите, пожалуйста: #include &lt;iostream&gt; using namespace std; template...

Error: template declaration of (Code::Blocks)
Помогите побороть ошибки. Код:#include &lt;cstdlib&gt; #include &lt;string&gt; #include &lt;vector&gt; #include...

Template definition of non-template при использовании частичной спецификации шаблонов
Всем привет! Есть задача написать шаблон класса, принимающего в качестве параметров типа шаблон и...

Ошибки "Declaration syntax error" и "Multiple declaration" при компиляции проекта
Optimalnost_Unit.cpp(6): E2141 Declaration syntax error Optimalnost_Unit.cpp(7): E2238 Multiple...

Ошибка: friend declaration declares a non-template function
Всем доброго времени суток! Я корплю над задачкой: нада сделать класс вектор шаблонным,...

3
3966 / 2020 / 726
Регистрация: 29.11.2010
Сообщений: 4,333
23.03.2022, 03:45 2
А что оно должно делать? Может это пример ошибок компиляции и так и должно быть?
0
С чаем беда...
Эксперт CЭксперт С++
9988 / 5341 / 1460
Регистрация: 18.10.2014
Сообщений: 12,844
23.03.2022, 04:00 3
Цитата Сообщение от predata Посмотреть сообщение
vector<short> get_digits(T number)
Что такое vector?

Цитата Сообщение от predata Посмотреть сообщение
Ошибки в коде
Почему код не оформлен тегами?
0
Модератор
Эксперт С++
12086 / 9762 / 5905
Регистрация: 18.12.2011
Сообщений: 26,207
23.03.2022, 08:51 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <vector>
//#include <math.h>
using namespace std;
template<typename T>
vector<short> get_digits(T number)
{
    vector<short> digs;
    while(number!=0)
    {
        digs.push_back(number % 10);
        number /= 10;
    }
    return digs;
}
 
int main()
{
    int n;
    cin >> n;
 
    vector<short> digs = get_digits(n); // получить вектор из цифр числа
    if(digs.size()>=2)
    {
        short d0=digs[0],d1=digs[1];
        short sum = d0*d0*d0 + d1*d1*d1; // сумма кубов цифр  
        bool res = ( n*n == sum * 4);
        cout << boolalpha << res << endl;
    }else
        cout<<"Number must have more the 1 digit\n";
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2022, 08:51
Помогаю со студенческими работами здесь

Шаблоны классов. Ошибка `unable to match function definition to an existing declaration`
#pragma once template &lt;typename T = int&gt; class SingleBuffer { public: SingleBuffer(T fd):...

Error during template rendering In template C:\Python\Django 3\samplesite\bboard\templates\layout\basic.html, error at
Пишу сайт на Django по книги Дронова. Использую Django 3.0. И в главе 2.7 &quot;Наследование шаблонов&quot;...

Declaration syntax error при компиляции. Ругается на свой же автоматически создаваемый код
Всё компилилось и работало, пока не добавил на форму пару компонентов. Embarcadero начал ругаться...

<Template>. Ошибка компиляции
Пытаюсь сделать Темплате Array, который бы принимал класс Point. Объект класса Point состоит из 2х...

Ошибка компиляции: a function-definition is not allowed here before '{' token;
У меня такая проблема. main.cpp #include &quot;main.h&quot; #include &lt;QtGUI&gt; #include &lt;QHBoxLayout&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru