Форум программистов, компьютерный форум CyberForum.ru

Как объявить функцию без прототипа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Несколько нюансов при использовании <vector> и управляющих инструкций http://www.cyberforum.ru/cpp-beginners/thread645476.html
Добрый день. Пытался решить задачу и напоролся на грабли: // вычислим и отобразим сумму каждых смежных элементов в векторе. int sum = 0; vector<int>::size_type last = ivec.size(); last = last - 1; // соответствует нумерации объектов начиная с нуля for(vector<int>::size_type i = 0; i < ivec.size(); ++i) { // if (!(last % 2)) // работает не корректно if (ivec >...
C++ Получить новый массив, в котором сначала идут положительные числа, затем нулевые, затем отрицательные исходного дан массив X(N). получить новый массив Y(N), такой, что в нем сначала идут положительные числа, затем нулевые, и затем отрицательные из Х. данные: n=7; Х=(-1,2,0,4,-3,-2,0) http://www.cyberforum.ru/cpp-beginners/thread645466.html
Найти в матрице квадратную подматрицу C++
дана матрица а(m,n) из 0 и 1. найти в ней квадратную подматрицу из одних единиц максимального размера.
C++ Проверьте правильность написания кода и коментарии
Задача: Написать программу которая принимает в качестве аргумента имя файла f с русским текстом и печатает его в точности по одному предложению в строке Желательно подробные комментарии к задаче! Заранее спасибо #include<iostream> #include <fstream> using namespace std; int my_strlen(char *str) { int res=0; while(str)
C++ перебор элементов массива http://www.cyberforum.ru/cpp-beginners/thread645457.html
дан массив целых чисел. поменять местами пары элементов в массиве: 1 и2,3 и 4,5 и 6 и т.д.
C++ Определить, находится ли точка в треугольнике заданы прямоугольные координаты Х1,У1,Х2,У2,Х3,У3 вершин треугольника и координаты Х и У точки. определить, находится ли точка в треугольнике подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
01.09.2012, 21:56     Как объявить функцию без прототипа
Цитата Сообщение от PSIAlt Посмотреть сообщение
Ну тогда это был бы не строго типизированный язык.
А что не так со строгостью? Выводилка типов не должна сказать, что тип этой функции будет X → Y, где X не поддерживает умножение на число два.


Цитата Сообщение от ForEveR Посмотреть сообщение
Неверно. func не будет тем, что вы сказали. closure это совершенно отдельный тип, не указатель на функцию.
Да вроде
такое
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
typedef int (*func_type)(int);
 
func_type getFunc(int y)
{
  return [](int x) -> int { return 2*x; };
}
 
int main()
{
  std::cout << getFunc()(10);
}
прокатывает. Так что вполне вероятно, что лямбды — не замыкания (которые с [], а не [=] или [&]) можно по крайней мере приводить к указателям на функции. Курю стандарт пока.

Таки да. Лямбды-комбинаторы можно приводить к указателям, 5.1.2/6:
The closure type for a lambda-expression with no lambda-capture has a public non-virtual non-explicit const conversion function to pointer to function having the same parameter and return types as the closure type’s function call operator. The value returned by this conversion function shall be the address of a function that, when invoked, has the same effect as invoking the closure type’s function call operator.
 
Текущее время: 19:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru