C++ の const

C++ における const とは何か
C++
1
イーロン・マスクツイッターやめろ @naota344

なんでgcc const int size=10; int hoge[size]; 使えないのんです?

2010-08-09 18:49:17
普通のC++使い、銀天すばる @SubaruG

const は定数じゃないからです。 RT @naota344: なんでgcc const int size=10; int hoge[size]; 使えないのんです?

2010-08-09 18:50:23
普通のC++使い、銀天すばる @SubaruG

const は定数より強力な概念なのである

2010-08-09 18:51:16
tamra @ta6ra

まじ?gccの勝手な拡張だと思ってた。 RT @fjnli: C99なら使えるっけ?

2010-08-09 18:53:21
Norihisa Fujita, ぽん @fjnli

まあ constexpr int size = 10; int hoge[size]; があるべき姿

2010-08-09 18:54:43
普通のC++使い、銀天すばる @SubaruG

C++ の const は immutable と考えたほうがいい。

2010-08-09 18:55:59
イーロン・マスクツイッターやめろ @naota344

@SubaruG: const は定数じゃないからです。 RT @naota344: なんでgcc const int size=10; int hoge[size]; 使えないのんです?” む…むむ?勉強し直さないと…orz

2010-08-09 18:56:19
イーロン・マスクツイッターやめろ @naota344

というか、constなものを配列のサイズに使える時使えない時ある気がする。よくわからず使えないとdefineしちゃうかわいそうな子

2010-08-09 18:58:27
イーロン・マスクツイッターやめろ @naota344

TOMOYOさんでカーネルの中でそんなコード使ってたとこが昔あった気がする。なんかコンパイラがSEGVしてたけど…

2010-08-09 19:00:16
くっくっkura 🇯🇵🦀 @PG_kura

固定サイズの配列を定義するときは enum { size = 10 }; をですね... とか言ったら怒られるんでしょーか。

2010-08-09 19:00:40
普通のC++使い、銀天すばる @SubaruG

少なくとも定数式とは別の概念。関係がないわけではないが。

2010-08-09 19:01:04
若年寄(もう若くない) @kikairoya

static cosnt size_t n = 0; は定数。const size_t n = 0; はconstオブジェクト。

2010-08-09 19:01:22
tamra @ta6ra

@fjnli サンクス、もう堂々と使えるんだw。

2010-08-09 19:02:27
Norihisa Fujita, ぽん @fjnli

ただallocaで実装されてると思うので、sizeが未知の時はチェックを併用するなりなんなりしないと危険だと思う。いや、sizeがいくつ未満なら安全なのか知る術があるかは別として。

2010-08-09 19:04:20
でちまるさん(実際かわいい) @decimalbloat

C++のconstは、そのスコープの内側で変更操作することを許さない、という意味で、immutableっていうのとはちょと違うんじゃないすかね。

2010-08-09 19:05:01
普通のC++使い、銀天すばる @SubaruG

よーするに const は # define の代わりではない、ということ。

2010-08-09 19:05:08
でちまるさん(実際かわいい) @decimalbloat

単にimmutableっていうだけだと、オブジェクトのゆりかごから墓場まで絶対に変更しない、という意味なのかどうかってところが曖昧かと。

2010-08-09 19:06:34
🎀にゃおきゃっと🐈Nyaocat🎀 @nyaocat

C++を放棄してCでするメリットが分からない……。Cで出来てC++で出来ない事とかあったっけ。

2010-08-09 19:06:37
でちまるさん(実際かわいい) @decimalbloat

まぁD言語ならimmutableとconstはそれぞれちゃんと意味を持ってるけど。

2010-08-09 19:07:21
くっくっkura 🇯🇵🦀 @PG_kura

縛りプレイ RT @nyaocat C++を放棄してCでするメリットが分からない……。Cで出来てC++で出来ない事とかあったっけ。

2010-08-09 19:08:41
イーロン・マスクツイッターやめろ @naota344

段々とconstについて理解が進む素晴らしいTL

2010-08-09 19:09:56