白黒羊

C++覚え書き

ちょっとだけ勉強したので。
もう使わないかもしれないけどメモ。

pointerの*ってどこにつける?

int* hoge_ptr;
int *hoge_ptr;

どっちでも良い。
流派があるらしい。
複数指定するときに

int *a, *b;

ってなるから後者を使いたいような、でもそういう型だよって見るなら前者の方が正しそうな(ありがとう のたぐすさん)。

const charのpointerはどこを指してる問題

//[const char] *hoge_ptr
const char *hoge_ptr;
//[char] const fuga_ptr
char *const fuga_ptr;

みたいな感じで 「* より左のもの」のpointerと考える。
hoge_ptrが指しているのは constcharで、const fuga_ptrcharpointer

constexpr関数

error: 'constexpr int hoge()' used before its definition

このエラーに見舞われた。

constexpr int hoge();
int hoge(){
    constexpr return 1;
}

としていたが、これだとHoge.hの宣言の段階でhoge()が使われてしまうことになるので、Hoge.hを以下のように変更する。

int hoge(){
    constexpr return 1;
}