Top/article/Can-function-return-void
English | Japanese
English | Japanese

Menu

  • Top
  • Akihiko Yamaguchi 山口 明彦
  • Project プロジェクト
  • Text テキスト
  • Recent articles 最近の記事
  • Articles 記事一覧 (a to z)
  • Search 検索

Tags タグ †

  • [c++][bash][python][latex][php]
  • [linux][windows][mac][android]
  • [math][algorithm][idea][trick]
  • [liboctave][opencv][git][ros]
  • [setting][bug][general]
↑

Recent articles 最近の記事 †

2019-07-02
  • article/Display-Unix-Time
  • article/Synchronize-Linux-Time-to-Remote
2018-09-27
  • article/python-multimode-singleton
2018-09-02
  • article/rosinstall-git-default-remote
2017-07-28
  • article/SubMenu
2017-03-05
  • article/Import-a-different-version-of-OpenCV-in-Python
2015-08-17
  • article/DRC-finals-2015
2015-01-05
  • article/Upgrade-Android-to-Lollipop
2015-01-01
  • article/Kernel-panic-of-Linux-when-using-Xtion
  • article/Do-not-skip-freeing-data-when-using-tri-mesh-in-ODE
Access: 1/2172 - Admin
These search terms have been highlighted:[c++]

Can a function return void?

void func1(..) を void func2(..) から return できるか検証

[c++]
2008-11-28

戻り値が void 型である関数 func1 を,戻り値が void 型であるほかの関数 func2 において,

  return func1(..);

のように返せるか実験してみた.

とりあえず,検証コードを書いてみる:

#include <iostream>
using namespace std;

void func1(void)
{
  cout<<"hoge"<<endl;
}
void func2(void)
{
  return func1();
}

int main(int argc, char**argv)
{
  func2();
  return 0;
}

コンパイルには g++-4.3 を使った.ただしオプションに -ansi と -pedantic をつけて,ANSI準拠にした:

  g++ -ansi -pedantic return-void.cpp

結果:コンパイルは通った. †

ほかのコンパイラでは試していないのだが,(g++判断で)ANSI準拠のようなので, void func1(..) を void func2(..) から return できるという結論にしておく*1.

↑

何に使えるのか †

マクロを使って関数を生成するときに, int func1(..) を int func2(..) から return できるのと同様のルールが void にも当てはまるなら,マクロの設計が簡単になる.稀なケースだが.


*1 規格を読んでみたが,どこに書いてあるか分かりません.orz..



Last-modified:2014-12-30 (Tue) 22:52:09 (3834d)
Site admin: Akihiko Yamaguchi.
Written by: Akihiko Yamaguchi.
System: PukiWiki 1.5.0. PHP 5.2.17. HTML conversion time: 0.008 sec.