¥¹¥Ý¥ó¥µ¡¼¥µ¥¤¥ÈCV½¤¾þ»Ò¤Îµ­½Ò°ÌÃÖ

Home ¡ä 2008-07 /  ¡ä This Entry 2006-02 / ¼ÂÁõµ»½Ñ ¡ä This Entry [com : 4][Tb : 1]

2006-02-12

°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÏÃÂ꤬³¤¤¤Æ¤¤¤Þ¤·¤¿¤¬¡¢º£²ó¤«¤é¤Ï¾¯¤·ÏÃÂê¤òÊѤ¨¤Æ¤¤¤­¤¿¤¤¤È»×¤¤¤Þ¤¹¡£º£²ó¤Ï¡¢CV½¤¾þ»Ò¤Îµ­½Ò°ÌÃ֤ˤĤ¤¤Æ¤Ç¤¹¡£¤Ê¤ª¡¢¡ÖCV½¤¾þ»Ò¡×¤È¤¤¤¦¤Î¤Ï¡¢const½¤¾þ»Ò¤Èvolatile½¤¾þ»Ò¤ÎÁí¾Î¤Ç¤¹¡£¤Á¤Ê¤ß¤ËC¸À¸ì¤Ç¤Ï¡¢restrict½¤¾þ»Ò¤â¤¢¤ë¤Î¤Ç¡¢¡ÖCV½¤¾þ»Ò¡×¤È¤Ï¤¤¤ï¤º¤Ë¡Ö·¿½¤¾þ»Ò¡×¤È¸Æ¤ó¤Ç¤¤¤Þ¤¹¡£

Î㤨¤Ð¡¢std::string¤òconst½¤¾þ¤¹¤ë¤È¤­¡¢³§¤µ¤ó¤Ïconst std::string¤È½ñ¤­¤Þ¤¹¤«¡©¤½¤ì¤È¤â¡¢std::string const¤È½ñ¤­¤Þ¤¹¤«¡©C¸À¸ì¤Ç¤Ï¡¢const½¤¾þ»Ò¤Ï¡¢¤è¤Û¤É¤Î»ö¾ð¤¬¤Ê¤¤¸Â¤êÁ°¤ËÉÕ¤±¤Þ¤¹¤«¤é¡¢¤½¤Î±Æ¶Á¤Ç¡¢const std::string¤È½ñ¤¯¤³¤È¤¬Â¿¤¤¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¤«¡©

¤Ç¤Ï¡¢ÆÈ¼«¤Îʸ»ú·¿¤È¤·¤Æ¡¢utf16_t·¿¤È¤¤¤¦¤Î¤òºî¤Ã¤¿¤È¤·¤Þ¤¹¡£Ê¸»úÄ̤ꡢUTF-8¤ò°·¤¦¤¿¤á¤Î·¿¤Ç¤¹¡£¤½¤·¤Æ¡¢¥Ç¥Õ¥©¥ë¥È¤Îchar_traits¤äallocator¤Ç¤Ï¤Ê¤¯¡¢ÆÈ¼«¤Ë¡¢my_char_trais<utf8_t>¥¯¥é¥¹¤È¡¢my_allocator<utf8_t>¥¯¥é¥¹¤òºî¤Ã¤¿¤È¤·¤Þ¤¹¡£

¤³¤Î¾ì¹ç¡¢utf8_t·¿¤ËÂбþ¤·¤¿Ê¸»úÎ󥯥饹¤Ï¡¢std::basic_string<utf8_t, my_char_traits<utf8_t>, my_allocator<utf8_t> >·¿¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤ì¤òconst½¤¾þ¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
const std::basic_string<utf8_t, my_char_traits<utf8_t>, my_allocator<utf8_t> >
¤È½ñ¤¯¤Î¤È¡¢
std::basic_string<utf8_t, my_char_traits<utf8_t>, my_allocator<utf8_t> > const
¤È½ñ¤¯¤Î¤Ç¤Ï¡¢¤É¤Á¤é¤¬¸«¤ä¤¹¤¤¤Ç¤·¤ç¤¦¤«¡©

¤³¤ì¤À¤±¤À¤Èʬ¤«¤ê¤Ë¤¯¤¤¤«¤âÃΤì¤Þ¤»¤ó¤Î¤Ç¡¢utf8_tÂбþ¤Îʸ»úÎ󥪥֥¸¥§¥¯¥Èutf8_str¤òÀë¸À¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£
const std::basic_string<utf8_t, my_char_traits<utf8_t>, my_allocator<utf8_t> > utf8_str;
¤È½ñ¤¯¤Î¤È¡¢
std::basic_string<utf8_t, my_char_traits<utf8_t>, my_allocator<utf8_t> > const utf8_str;
¤È½ñ¤¯¤Î¤Ç¤Ï¡¢¤É¤Á¤é¤¬¸«¤ä¤¹¤¤¤Ç¤·¤ç¤¦¤«¡©

C++¤Ç¤Ï·¿Ì¾¤¬Èó¾ï¤ËŤ¯¤Ê¤ë¾ì¹ç¤¬¤¢¤ë¤Î¤Ç¡¢CV½¤¾þ»Ò¤ò¸å¤í¤Ë½ñ¤¤¤¿Êý¤¬¡¢Àë¸À¤µ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤¬¤É¤¦½¤¾þ¤µ¤ì¤Æ¤¤¤ë¤«¤¬Ê¬¤«¤ê¤ä¤¹¤¯¤Ê¤ë·¹¸þ¤Ë¤¢¤ê¤Þ¤¹¡£

Comment

egtra ¡§ 2006-05-07(Sun) 16:48 URL edit
¤Ï¤¸¤á¤Þ¤·¤Æ¡£¸¡º÷¤·¤Æ¤¤¤¿¤é¤¿¤Þ¤¿¤Þ¤³¤³¤ËÃ夭¤Þ¤·¤¿¡£
¤½¤â¤½¤âstd::basic_string<utf8_t, my_char_traits<utf8_t>, my_allocator<utf8_t> >¤È¤¤¤¦»þÅÀ¤Ç¸«¤Å¤é¤¤¤Ç¤¹¡£
»ä¤Ê¤é¨ºÂ¤Ëtypedef¤·¤Þ¤¹¡£
typedef std::basic_string<utf8_t, my_char_traits<utf8_t>, my_allocator<utf8_t> > utf8string;
¤³¤¦¤¹¤ì¤Ðconst¤òÁ°¸å¤É¤Á¤é¤Ë¤ª¤¤¤Æ¤â¶Ëü¤Ë¸«°×¤µ¤¬ÊѤï¤ë¤È¤¤¤¦¤³¤È¤Ï̵¤¤¤Ï¤º¤Ç¤¹¡£

¤Á¤Ê¤ß¤Ë»ä¤Ï¸å¤í¤ËÃÖ¤¤¤¿¤Û¤¦¤¬Åý°ì´¶¤¬¤¢¤ë¤È»×¤¤¤Ä¤Ä¡¢´·½¬Åª¤ËÁ°¤ËÃÖ¤¤¤Æ¤¤¤Þ¤¹¡£
¤¿¤«¤® ¡§ 2006-05-08(Mon) 00:22 URL edit
egtra¤µ¤ó¡¢¥³¥á¥ó¥È¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£

> »ä¤Ê¤é¨ºÂ¤Ëtypedef¤·¤Þ¤¹¡£
¤È¤³¤í¤¬¤½¤¦¤â¤¤¤«¤Ê¤¤¤Î¤Ç¤¹¡£
¤È¤¤¤¦¤Î¤Ï¡¢¤³¤¦¤¤¤¦Ä¹¤Ã¤¿¤é¤·¤¤Ì¾Á°¤òtypedef¤Ê¤·¤Ç»È¤¦¾ì¹ç¤È¤¤¤¦¤Î¤Ï¡¢ÂçÄñ¡¢¥Æ¥ó¥×¥ì¡¼¥È´Ø¿ô¤Î°ú¿ô¤äÊÖµÑÃͤη¿¤Ê¤ó¤«¤Ç¡¢¤½¤¦¤¤¤¦¤È¤­¤Ë¤Ïtypedef¤¬»È¤¨¤Þ¤»¤ó¡£

Î㤨¤Ð¡¢
template <class charT, class traits, class Allocator>
int func(std::basic_string<charT, traits, Allocator> const& str)
{
  ...
}
¤Î¤è¤¦¤Ê¾ì¹ç¤Ç¡¢¤³¤ì¤À¤Ètypedef¤¬»È¤¨¤Ê¤¤¤ï¤±¤Ç¤¹¡£

µ­»ö¤ÎÆâÍÆ¤¬¡¢traits¤âAllocator¤âÆÃÄꤷ¤Æ¤·¤Þ¤Ã¤Æ¤¤¤¿¤Î¤Ç¡¢Îã¤È¤·¤Æ¤Ï¤¢¤Þ¤ê¤è¤¯¤Ê¤«¤Ã¤¿¤«¤â¤·¤ì¤Þ¤»¤ó¡£
k_satoda ¡§ 2006-05-11(Thu) 01:42 URL edit
const ¤ò´Þ¤à·¿½¤¼­»Ò¤ò±¦¤ËÃÖ¤¯¤Î¤Ï¾¤Ë¤â¥á¥ê¥Ã¥È¤¬¤¢¤ë¤È¹Í¤¨¤Æ¤¤¤Þ¤¹¤Î¤Ç¾Ò²ð¤µ¤»¤Æ¤â¤é¤¤¤Þ¤¹¡£

¤Þ¤º¤Ï¡Ê egtra ¤µ¤ó¤âµó¤²¤é¤ì¤Æ¤¤¤Þ¤¹¤¬¡ËÀë¸À¤Ë¤ª¤¤¤Æ¤Î°ì´ÓÀ­¤¬¤¢¤ë¤È»×¤¤¤Þ¤¹¡£
¤¿¤È¤¨¤Ðʸ»úÎó¥ê¥Æ¥é¥ë¤Î¸ÇÄê¥Æ¡¼¥Ö¥ë¤òºî¤ë¾ì¹ç¡¢±¦¤ËÃÖ¤¯¥¹¥¿¥¤¥ë¤Ç¤Ï
> char const* const table[] = {...
¤È¤Ê¤ê¤Þ¤¹¤¬¡¢¤³¤ì¤òº¸¤ËÃÖ¤¯¥¹¥¿¥¤¥ë¤ËÊѤ¨¤ë¤È¤·¤Æ
> const char const* table[] = {
¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ì¤ÐÀµ¤·¤¤Àë¸À¤Ë¤Ê¤ê¤Þ¤¹¤¬
> const char* const table[] = {
¤Ê¤ó¤À¤«ÉÔÄà¹ç¤¤¤Ç¤¹¡£

¤½¤·¤Æ¡¢ const ¤òº¸¤ËÃÖ¤¯¿Í¤Ï¾åµ­¤ÎÎã¤ÎÃæ¤Î£²ÈÖÌܤΠconst ¤Î°ÕÌ£¤òÀµ¤·¤¯Íý²ò¤·¤Æ¤¤¤Ê¤¤·¹¸þ¤¬¤¢¤ê¡¢
> const char* table[] = {
¤È¤¤¤¦Àë¸À¤ò¹Ô¤¤¤¬¤Á¤Ç¤¹¡£¤µ¤é¤Ë¡¢Àµ¤·¤¯Íý²ò¤·¤Æ¤¤¤Æ¤â˺¤ì¤ä¤¹¤¤·¹¸þ¤â¤¢¤ë¤È´¶¤¸¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ï¥Á¡¼¥×¤ÊÁȤ߹þ¤ß´Ä¶­¤Ç¤Ï table ¤¬ ROM ¤ËºÜ¤ë¤« RAM ¤ò¾ÃÈñ¤¹¤ë¤«¤Î½ÅÂç¤Êʬ¤«¤ìÌܤˤʤê¤Þ¤¹¡£
¤Þ¤¿¡¢ OS ¤«¤éµ¯Æ°¤µ¤ì¤ë¥×¥í¥°¥é¥à¤Ç¤âÊ£¿ôµ¯Æ°¤µ¤ì¤¿¤È¤­¤Ë¥á¥â¥ê¾å¤Î¥¤¥á¡¼¥¸¤ò¶¦Í­¤Ç¤­¤ë¤«¤É¤¦¤«¤Î°ã¤¤¤Ë¤Ê¤ê¤Þ¤¹¡£
¤¿¤«¤® ¡§ 2006-05-11(Thu) 09:10 URL edit
k_satoda¤µ¤ó¡¢¥³¥á¥ó¥È¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£

> ¤½¤·¤Æ¡¢ const ¤òº¸¤ËÃÖ¤¯¿Í¤Ï¾åµ­¤ÎÎã¤ÎÃæ¤Î£²ÈÖÌܤΠconst ¤Î°ÕÌ£¤òÀµ¤·¤¯Íý²ò¤·¤Æ¤¤¤Ê¤¤·¹¸þ¤¬¤¢¤ê¡¢
> > const char* table[] = {
> ¤È¤¤¤¦Àë¸À¤ò¹Ô¤¤¤¬¤Á¤Ç¤¹¡£¤µ¤é¤Ë¡¢Àµ¤·¤¯Íý²ò¤·¤Æ¤¤¤Æ¤â˺¤ì¤ä¤¹¤¤·¹¸þ¤â¤¢¤ë¤È´¶¤¸¤Æ¤¤¤Þ¤¹¡£
¤½¤¦¤Ç¤¹¤Í¡£³Î¤«¤Ë¡¢¤³¤ÎÊդΤ³¤È¤ò½½Ê¬Íý²ò¤Ç¤­¤Æ¤¤¤Ê¤¤»öÎã¤Ï¤è¤¯¸«¤«¤±¤Þ¤¹¡£

static¤Ê¤É¤Îµ­²±¥¯¥é¥¹»ØÄê»Ò¤ÏÀë¸ÀÁ´ÂΤˤ«¤«¤ë¤Î¤Ç¡¢
> static const char* table[] ={
¤À¤ÈÇÛÎó¤¬ÀÅŪ¤Ë³ÎÊݤµ¤ì¤Þ¤¹¤¬¡¢¤½¤ì¤«¤é¤ÎÎà¿ä¤¬Æ¯¤¤¤Æ¤¤¤ë¤Î¤«¤âÃΤì¤Þ¤»¤ó¡£

> ¤µ¤é¤Ë¡¢Àµ¤·¤¯Íý²ò¤·¤Æ¤¤¤Æ¤â˺¤ì¤ä¤¹¤¤·¹¸þ¤â¤¢¤ë¤È´¶¤¸¤Æ¤¤¤Þ¤¹¡£
˺¤ì¤ë¤È¤¤¤¦¤«¡¢¾Ç¤Ã¤Æ¤¤¤¿¤ê¡¢Èè¤ì¤Æ¤¤¤¿¤ê¤¹¤ë¤È¡¢¤Ä¤Þ¤é¤Ê¤¤¥ß¥¹¤òÈȤ¹¤³¤È¤Ï¤¢¤ê¤Þ¤¹¤Í¡£
Post a Comment









´ÉÍý¼Ô¤Ë¤À¤±É½¼¨¤òµö²Ä

Trackback

http://cppemb.blog17.fc2.com/tb.php/50-457bc5c5

[¥×¥í¥°¥é¥ß¥ó¥°][C++]·¿½¤¾þ»Ò¤Îµ­½Ò°ÌÃÖ¤òÊѤ¨¤è¤¦

C++ (¤È¤« C) ¸À¸ì¤Î·¿½¤¾þ»Ò¤Ë¤Ï const¡¤volatile (¤È restrict) ¤¬¤¢¤ê¤Þ¤·¤Æ¡¤¤½¤ì¤¾¤ì°ÕÌõ¤¹¤ë¤È¡ÖÊѲ½¤·¤Þ¤»¤ó¡×¡¤¡ÖºÇŬ²½¤·¤Ê¤¤¤Ç¤Í¡×(¤½¤·¤Æ¡Ö°ã¤¦¥¢¥É¥ì¥¹¤Ç¤¹¡×) ¤Ë¤Ê¤ê¤Þ¤¹¡¥¤³¤ì¤é¤Ï·¿¤½¤Î¤â¤Î¤È¥Ý¥¤¥ó¥¿·¿¤ÎξÊý¤òÊÌ¡¹¤Ë½¤¾þ¤Ç¤­¤ë (restrict ¤Ï¥Ý¥¤¥ó¥¿·¿¤À¤ ...

¥É¥ì¥Ã¥·¥ó¥°¤Î¤è¤¦¤Ê ¡§ 2006-09-17¡¡22:35

C++¤ÈÁȤ߹þ¤ß´Ä¶­ | Page Top¢¥

New >>
¸ÇÄêĹʸ»úÎ󥯥饹
<< old
°ì»þ¥ª¥Ö¥¸¥§¥¯¥È¤Î»²¾È
¥Ö¥í¥°Æâ¸¡º÷
RSS¥Õ¥£¡¼¥É