5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

C++相談室 part58

1 :v(^・^)v:2007/09/26(水) 03:41:13
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

テンプレその他 >>2-15 付近参照

前スレ(実質 part57)
C++相談室 part56
http://pc11.2ch.net/test/read.cgi/tech/1185377587/

126 :デフォルトの名無しさん:2007/10/02(火) 21:42:40
#include <boost/numeric/ublas/vector.hpp>
using namespace boost::numeric::ublas::inner_prod;

VC++2005EEの環境でビルドすると、
error C2867: 'boost::numeric::ublas::inner_prod' : は名前空間ではありません。
というエラーが出ます。
エラーの原因は何ですか?

127 :デフォルトの名無しさん:2007/10/02(火) 22:08:58
名前空間ではないものをusing namespaceしたこと

128 :126:2007/10/02(火) 23:00:22
>>127
http://sealsoft.jp/namespace.html このサイトの
> usingを使って、ある識別子をグローバルな名前空間に持ち上げることができる。こうするとその後は大域解決演算子を使う必要がない。
> using namespace seal::foo;
> // 関数fooを呼び出す
> int a = foo();

ここ見てできると思ったんですけど、このサイト間違ってますか?

129 :デフォルトの名無しさん:2007/10/02(火) 23:27:47
usingディレクティブ (using namespace)の対象にできるのは、名前空間だけ。
代わりといってはアレだが、その他の識別子一般には、using宣言が使える。
using boost::numeric::ublas::inner_prod;

130 :126:2007/10/02(火) 23:49:25
>> 129
なるほど、そうなんですか。

http://msdn2.microsoft.com/ja-jp/library/6f133eff(vs.80).aspx
ここを勘違いして見てました。(classの中のusingとは別物なんですね)

クラスの中でnamespace内の関数をusingしたい場合、
class A {
using boost::numeric::ublas::inner_prod;
};
エラーになってしまうのですが、クラス中でnamespace内の関数をusingするのは無理ということですか?

131 :デフォルトの名無しさん:2007/10/03(水) 00:09:31
そういうこと。クラス定義内のusingは基底クラスの名前を指定することに特化している。
なお、型名だけはtypedefで代用できる。

272 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)