- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
#include <stdio.h>
typedef int (*FUNC)();
FUNC test (int a, int b){
int ret(){
return a + b;
}
return ret;
}
int main(){
printf("%i\n", test(40, 2)());
return 0;
}
/* Тоже самое на JS */
function test(a, b){
function ret(){
return a + b;
}
return ret;
}
alert(test(40, 2)());
# Тоже самое на Python
def test(a, b):
def ret():
return a + b
return ret
print test(40, 2)()
Похоже на "ya perepesala"
Что за уебанский синтаксис?
https://wandbox.org/permlink/2JdEM4yb4b1cILJr
https://wandbox.org/permlink/rz1tpk1NXTMrEVrt
Clang:
-O0 4200214
-O1 4201616
-O2 0
-O3 0
GCC (просто шикарно):
-O0 13
-O1 42
-O2 42
-O3 42
Осталось доработать до constexpr, чтобы можно было определять и в компайлтайме.
Компайлтайм UB'ы - это сильно.