忍者ブログ

どっかのゆとりのチラシの裏

plasma_effectのメモ帳的ブログのようなsomething

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

constについての検証

C++ではconstというキーワードが存在する。
定数を作るアレなのだが少しややこしいことが起きた。
例えば以下のコードは通る

const int a = 1;
static_assert(a,"");

int main()
{

}

一方で以下のコードは通らない

int func(){return 1;}
const int a = func();
static_assert(a,"");

int main()
{

}

何が違うのかというと前者は初期化でリテラルを渡していたのに対し後者は関数の返り値で初期化している。このとき前者ではコンパイル時定数だが後者は実行時定数となる。わけがわからない。
後者は実行時に評価されるからいいとして前者はホントにどういうことなのか。
まぁコンパイル時定数になってくれないとTMPは成立しないから別にいいのだが。
PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

カレンダー

10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

フリーエリア

最新CM

[02/12 kariya_mitsuru]
[10/14 どっかの京大生o]
[10/04 どっかのZ会生y]
[07/31 どっかのZ会生y]
[07/31 GNR]

プロフィール

HN:
plasma_effect
性別:
非公開

バーコード

ブログ内検索

最古記事

(06/08)
(06/18)
(06/21)

P R