颿°
颿°ã¯æã®ä¸¦ã³ (颿°ã®æ¬ä½) ãååããã³ã¼ãå以ä¸ã®é¢æ°ã®ä»®å¼æ°ã®ãªã¹ãã¨ç´ä»ãã C++ ã®ã¨ã³ãã£ãã£ã§ãã
// 颿°åãisoddã // 仮弿°ãªã¹ãã«ã¯ååããnãã§åã int ã®1åã®ä»®å¼æ°ãããã¾ã // æ»ãå¤ã®å㯠bool bool isodd(int n) { // 颿°ã®æ¬ä½ã®å§ã¾ã return n % 2; } // 颿°ã®æ¬ä½ã®çµãã
颿°ãå¼ã³åºãããã¨ã (ä¾ãã°é¢æ°å¼ã³åºãå¼ã§)ã仮弿°ã¯å®å¼æ° (å¼ã³åºãã®å ´æã§æä¾ãããããããã©ã«ãåããããããããã) ããåæåããã颿°ã®æ¬ä½ã®æãå®è¡ããã¾ãã
int main() { for(int arg : {-3, -2, -1, 0, 1, 2, 3}) std::cout << isodd(arg) << ' '; // isodd ã7åå¼ã°ãããã®åº¦ã« // n ã arg ããã³ãã¼åæåããã¾ãã }
颿°ã¯ãæ»ããã¨ã«ãã£ã¦ãã¾ãã¯ä¾å¤ãæãããã¨ã«ãã£ã¦ãçµäºã§ãã¾ãã
颿°ã¯ã³ã«ã¼ãã³ã§ãããã¨ãããã¾ãã ãã®å ´åãå¾ã«åéããããã«å®è¡ã䏿ãããã¨ãã§ãã¾ãã |
(C++20以ä¸) |
颿°ã®å®£è¨ã¯ä»»æã®ã¹ã³ã¼ãå ã«ç¾ãããã¨ãã§ãã¾ããã颿°ã®å®ç¾©ã¯ãåå空éã¹ã³ã¼ãå ãã¾ãã¯ãã¯ã©ã¹ã¹ã³ã¼ãå (ã¡ã³ã颿°ããã³ãã¬ã³ã颿°ã®å ´å) ã«ã®ã¿ãç¾ãããã¨ãã§ãã¾ãã ã¯ã©ã¹ã®æ¬ä½ã®ä¸ã§ friend æå®åãªãã«å®£è¨ããã颿°ã¯ãã¯ã©ã¹ã®ã¡ã³ã颿°ã§ãã ãã®ãããªé¢æ°ã¯è¿½å ã®æ§è³ªãå¤ãæã¡ã¾ãã 詳細ã¯ã¡ã³ã颿°ãåç §ãã¦ãã ããã
颿°ã¯ãªãã¸ã§ã¯ãã§ã¯ããã¾ããã 颿°ã®é åã¨ãããã®ã¯ãªãã颿°ã夿¸¡ããããä»ã®é¢æ°ããè¿ããããããã¨ã¯ã§ãã¾ããã 颿°ã¸ã®ãã¤ã³ã¿ãåç §ã¯èªãããã¦ããã颿°ãã®ãã®ã§ã¯ã§ããªãã¨ããã§ä½¿ç¨ãããã¨ãã§ãã¾ãã
ããããã®é¢æ°ã¯åãæã¡ã¾ãã ããã¯é¢æ°ã®æ»ãå¤ã®åããã¹ã¦ã®ä»®å¼æ°ã®å (é åãããã¤ã³ã¿ã颿°ãããã¤ã³ã¿ã¸ã®å¤æå¾ (仮弿°ãªã¹ããåç §))ã颿°ã noexcept ãã©ãã (C++17以ä¸)ã cv 修飾åããã³åç §ä¿®é£¾å (ã¡ã³ã颿°ã®å ´å) ããæ§æããã¾ãã 颿°ã®åã«ã¯è¨èªãªã³ã±ã¼ã¸ãå«ã¾ãã¾ãã cv 修飾ããã颿°åã¨ãããã®ã¯ããã¾ãã (int f() const; ã®ãã㪠cv 修飾ããã颿°ã®åã std::string const f(); ã®ãã㪠cv 修飾ãããåãè¿ã颿°ã¨æ··åããªãã§ãã ãã)ã
ã©ã ãå¼ã«ãã£ã¦ååã®ãªã颿°ãçæã§ãã¾ãã
仮弿°ãªã¹ãããã³ cv/åç §ä¿®é£¾ (ã¡ã³ã颿°ã®å ´å) ãç°ãªãéããåãã¹ã³ã¼ãå ã®è¤æ°ã®é¢æ°ãåãååãæã¤ãã¨ãã§ãã¾ãã ããã¯é¢æ°ã®ãªã¼ãã¼ãã¼ãã¨å¼ã°ãã¾ãã æ»ãå¤ã®åããã³ noexcept æå® (C++17以ä¸)ã®ã¿ãç°ãªã颿°ã®å®£è¨ã¯ãªã¼ãã¼ãã¼ãã§ãã¾ããã
This section is incomplete Reason: links to other Function subpages |
[ç·¨é] 颿°ãªãã¸ã§ã¯ã
颿°ã®å·¦è¾ºå¤ã ãã§ãªãã颿°å¼ã³åºãå¼ã¯é¢æ°ã¸ã®ãã¤ã³ã¿ãéåç §ãããã¡ã³ã颿°ã¸ã®ãã¤ã³ã¿ãã©ã ãå¼ãããã³é¢æ°å¼ã³åºãæ¼ç®åããªã¼ãã¼ãã¼ãããããããã¯ã©ã¹åã®å¤æ°ããµãã¼ããã¾ãã ãããã®åã¯ã¾ã¨ãã¦é¢æ°ãªãã¸ã§ã¯ãã¨å¼ã°ãã C++ ã®æ¨æºã©ã¤ãã©ãªã®æ§ã ãªã¨ããã§ä½¿ç¨ããã¾ãã ä¾ãã°ã BinaryPredicate ã Compare ã®ç¨éãåç §ãã¦ãã ããã
æ¨æºã©ã¤ãã©ãªã¯å¤ãã®å®ç¾©æ¸ã¿ã®é¢æ°ãªãã¸ã§ã¯ãã®ãã³ãã¬ã¼ãããæ°ãã颿°ãªãã¸ã§ã¯ããåæããæ¹æ³ (std::mem_fn, std::bind, std::function ãªã©) ãæä¾ãã¦ãã¾ãã