タグ

ブックマーク / blog.cryolite.net (1)

  • const な右辺値に対する参照テンプレートパラメータの型推論と一時オブジェクトの束縛 - Cry's Blog

    つい最近知ってちょっと衝撃を受けたことについて. 非const参照パラメータが指定されている関数の項に右辺値(リテラルもしくは関数から返される一時オブジェクト)を指定できないのは有名. void f( int &i ) { ..... } int g() { return 1; } int main() { f( g() ); // ダメ. C++ の言語規格では認められていない }これは非constなテンプレートパラメータが指定された関数の項でも同じ. template< class T > void f( T &i ) { ..... } int g() { return 1; } int main() { f( g() ); // 同じくダメ. }これは比較的良く知られている(のか?)規格で,別にいまさらこれに驚いたわけじゃない. ところが右辺値の型が const 修飾されていると,

    const な右辺値に対する参照テンプレートパラメータの型推論と一時オブジェクトの束縛 - Cry's Blog
    Wacky
    Wacky 2006/03/05
    右辺値の型が const 修飾されていると,それがこの非 const な参照テンプレートパラメータを指定された項で受けられる
  • 1