不允许嵌套函数定义有技术原因吗? 为什么C++不允许这样的事情: int foo(int x) { void bar(int x) { return x*x;} return bar(x); }

不允许嵌套函数定义有技术原因吗? 为什么C++不允许这样的事情: int foo(int x) { void bar(int x) { return x*x;} return bar(x); },c++,function,C++,Function,免责声明:我并不是在询问拒绝的理由。我们可以在函数中定义类,特别是函子,因为C++11 lambdas,所以实际上我不认为需要它 然而,我想知道是否有一些技术限制/问题会阻止允许它。它会在语法方面产生歧义吗?其他我看不到的问题?或者答案很简单:不允许这样做,因为不需要这样做?语法来自K&R C,您想问他们吗?使用gcc是可能的gnuC@OznOg哦,这实际上回答了我的问题;)@据我所知,OznOg不是标准c,而是GNUC。无论如何,没有技术上的限制limitation@formerlyknown

免责声明:我并不是在询问拒绝的理由。我们可以在函数中定义类,特别是函子,因为C++11 lambdas,所以实际上我不认为需要它


然而,我想知道是否有一些技术限制/问题会阻止允许它。它会在语法方面产生歧义吗?其他我看不到的问题?或者答案很简单:不允许这样做,因为不需要这样做?

语法来自K&R C,您想问他们吗?使用gcc是可能的gnuC@OznOg哦,这实际上回答了我的问题;)@据我所知,OznOg不是标准c,而是GNUC。无论如何,没有技术上的限制limitation@formerlyknownas_463035818让我关闭它,你可以添加它。