[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 22:57 / Filesize : 262 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【C++】template 統合スレ -- Part6



1 名前:デフォルトの名無しさん mailto:sage [04/11/25 21:11:32]
C++ のジェネリックプログラミングの話をしましょう。
以下のスレッドを統合するスレです。
STLスレッド
Part1 pc.2ch.net/tech/kako/1004/10042/1004287394.html
Part2 pc3.2ch.net/tech/kako/1026/10267/1026793823.html

【C++】Boost使い集まれ!
pc3.2ch.net/test/read.cgi/tech/1033830935/ (html化待ち?)

Generic Programming with C++ Template
pc.2ch.net/tech/kako/1008/10085/1008593126.html
【C++】template 統合スレ -- STL/Boost/Loki, etc.
pc2.2ch.net/tech/kako/1037/10377/1037795348.html
【C++】template 統合スレ -- Part2
pc2.2ch.net/test/read.cgi/tech/1047978546/ (html化待ち)
【C++】template 統合スレ -- Part3
pc5.2ch.net/test/read.cgi/tech/1066493064/ (html化待ち)
【C++】template 統合スレ -- Part4
pc5.2ch.net/test/read.cgi/tech/1083550483/ (html化待ち)
【C++】template 統合スレ -- Part5
pc5.2ch.net/test/read.cgi/tech/1091522597/
関連スレ、その他リンクは >>2-5 あたりに。


747 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 22:20:05 ]
>>745
テンプレートの定義をcppファイルに書きたければ、宣言と定義の両方にexportを付けるだけ。
しかしほとんどのコンパイラで使えない。(使えるコンパイラが全くないわけではない)

というわけで普通はヘッダにインラインで全て書く。
ごく稀に明示的実体化が使われることはあるが。

748 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 22:48:35 ]
>>747
明示的実体化ってまさか、

template class c<bool>;
template class c<char>;
template class c<unsigned char>;

みたいに延々と cpp ファイルに書いていくわけ?

749 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 23:06:05 ]
g++にはextern templateってのがあるね。

750 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 23:11:50 ]
>748
そゆこと。

751 名前:745 mailto:sage [2005/07/19(火) 23:17:21 ]
やってみた>>747

make -k all
g++ -Wall main.cpp Class.cpp -c
g++ -Wall main.o Class.o -o a.exe
main.o(.text+0x25):main.cpp: undefined reference to `Class<int>::Class[in-charge]()'
collect2: ld returned 1 exit status
make: *** [all] Error 1

ムリポ

>>749を含めて出直してくる。これはイマの私の頭ではいくら考えても答えが出ない。
本を読むかg++のマニュアルを漁るか…

752 名前:デフォルトの名無しさん mailto:sage [2005/07/19(火) 23:44:58 ]
>>751
g++のinclude/bits/istream.tccより

// Inhibit implicit instantiations for required instantiations,
// which are defined via explicit instantiations elsewhere.
// NB: This syntax is a GNU extension.
#if _GLIBCPP_EXTERN_TEMPLATE
extern template class basic_istream<char>;
extern template istream& ws(istream&);
extern template istream& operator>>(istream&, char&);
extern template istream& operator>>(istream&, char*)

753 名前:デフォルトの名無しさん mailto:sage [2005/07/23(土) 19:33:12 ]
template <class T> class foo;

template <class T> class baa{
 friend foo;
 int n;
public:
 baa() : n(777){}
};

template <class T> class foo : public baa<T>{
 int hoge;
public:
 void set_val( baa<T>& arg ){ hoge = arg.n; }
};

int main(){
 baa<int> b;
 foo<int> f;
 f.set_val( b );
 return 0;
}

インデントが全角スペースですいません
これだとarg.nにアクセス出来ないのですが、間違っている場所を教えて頂けないでしょうか
friend foo; が、やっぱり
template <class T> friend foo; なんでしょうか

754 名前:デフォルトの名無しさん mailto:sage [2005/07/23(土) 19:45:24 ]
>>753
g++ でコンパイルすると、
:4: error: ISO C++ forbids declaration of `foo' with no type
:4: error: `foo' is neither function nor member function; cannot be declared friend

まぁそれは置いとくとして、
 friend class foo<T>;
で通ったよ。

755 名前:753 mailto:sage [2005/07/23(土) 19:59:42 ]
>>754
やっぱりclass指定しますよね
書き込む前にチェックしたサイトで、指定が無かったので、自分が間違っていたのかと

そうか、再度template <class T>付けるのは馬鹿でした。
VC6なので、Tが同じじゃなかったらアウトだったかも・・・良かった。

本当に助かりました。コンパイルまでして頂いてすいません。ありがとうございました。



756 名前:デフォルトの名無しさん mailto:sage [2005/07/23(土) 20:13:13 ]
baaっての…なんかプログラムがアホっぽくなるな。

757 名前:デフォルトの名無しさん mailto:sage [2005/07/23(土) 22:22:39 ]
>>755
friend かどうかっていう問題なのか?
baa<T>::n が private か protected/public かどうかっていう問題では?

758 名前:デフォルトの名無しさん mailto:sage [2005/07/23(土) 22:47:57 ]
>>757
vtableを避けるための小細工なんです
眉をしかめる人が多いと思いますが、自分しか使わないのでお見逃しを

759 名前:デフォルトの名無しさん mailto:sage [2005/07/23(土) 23:36:56 ]
>>758
よくわからないな。>>753 のを
template <class T> class baa{
protected:
 int n;
public:
 baa() : n(777){}
};
とすると VC6 だと vtable に関して状況が変わるの?

760 名前:デフォルトの名無しさん mailto:sage [2005/07/23(土) 23:51:14 ]
753がprotectedを知らなかったというオチ?

761 名前:デフォルトの名無しさん mailto:sage [2005/07/24(日) 00:21:24 ]
>>759
失礼、深読みしすぎてました。

しかしすいません、そうなると>>757で頂いたレスの意図が分からないです。
protectedすると、引数で他のbaaを受け取ったとき、nにアクセス出来るのでしょうか。

762 名前:760 mailto:sage [2005/07/24(日) 00:40:00 ]
753のコードでは、bar<T>::nがprotectedならfoo<T>::set_valの中でarg.nにアクセスできると思っていたがそうではなかったようだ。
スマソ

763 名前:デフォルトの名無しさん mailto:sage [2005/07/24(日) 01:03:17 ]
>>761
アクセスできると思ってた。けど間違ってたのなら失礼。
・基本 class から 派生 class を public 継承したとき、
・基本 class の protected member である n について、
・派生 class から this の n にアクセスできる。
・派生 class から this 以外の n にアクセスできない。
ということかな?も一回勉強しなおそ。

・ある class の private member である n について、
・その class から this の n にアクセスできる。
・その class から this 以外の n にアクセスできる。
というのは間違いないと思うんだけど。

あと自分の VC7 は、これに関して template class かそうでないかによって
コンパイル結果が違うのもよくわからない。

764 名前:デフォルトの名無しさん mailto:sage [2005/07/24(日) 02:17:54 ]
勉強しなおした。>>763は間違い多数につきスルーよろしく。失礼しますた。


765 名前:デフォルトの名無しさん mailto:sage [2005/07/28(木) 18:38:46 ]
Compile-time if
で型でなく値を返すにはどうすればいいのでしょうか?
int v= boost::mpl::if_c< (sizeof(T) <= sizeof(double)), 10, 20 >::Value
はだめでした




766 名前:デフォルトの名無しさん mailto:sage [2005/07/28(木) 19:41:12 ]
>>765
boost::mpl::int_
を使って、型にマップすればいい。

767 名前:デフォルトの名無しさん mailto:sage [2005/07/28(木) 19:56:38 ]
>>765
struct R0 {
enum {value = 10};
};
struct R1 {
enum {value = 20};
};
template <typename T>
int func ()
{
typedef typename boost::mpl::if_c <(sizeof (T) <= sizeof (double)), R0, R1>::type Result;
return Result::value;
}


768 名前:デフォルトの名無しさん mailto:sage [2005/07/29(金) 10:42:43 ]
template<CONTANER>
class CmyContaner
{
typedef CONTANER::iterator iterator_type;
};
としたらコンパイル通らなかったんですが、
CONTANER::iteratorはできないってことなのでしょうか?

769 名前:デフォルトの名無しさん mailto:sage [2005/07/29(金) 11:35:24 ]
>>768
-typedef CONTANER::iterator iterator_type;
+typedef typename CONTANER::iterator iterator_type;


770 名前:デフォルトの名無しさん mailto:sage [2005/07/29(金) 15:37:41 ]
そのままじゃ型名かメンバ変数かわからんからね。

> CONTANER
北斗の拳の主題歌を思い出すスペルミスだな。

771 名前:デフォルトの名無しさん mailto:sage [2005/07/29(金) 16:46:27 ]
>>768
ここもだね
-template<CONTANER>
+template<typename CONTANER>


772 名前:デフォルトの名無しさん [2005/07/30(土) 08:40:48 ]
template<Functor>
class MyMethod
{
public:
Functor f_
MyMethod(Functor f):f(f_)
{}
value()
{
f_(10);
}
};

class MyClass
{
public:
struct MyFunctor{
operator()(int a)
{
std::cout << a;
}myFunc;

//MyMethod<MyFunctor> myMethod(myFunc);//コンパイル通らない
MyMethod<MyFunctor> myMethod(MyFunctor);//なぜかコンパイル通る
value(){
myMethod.value();//左側がクラス 構造体 共用体でありません と怒られる
}
};

クラスの中でfunctorを定義したら動かなくなりました。
回避方法はないのでしょうか?

773 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 09:48:49 ]
>>772
>クラスの中でfunctorを定義したら動かなくなりました。
クラスの外でfunctorを定義したらそれ動く?


774 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 13:47:17 ]
>772
とりあえず } が 1 個足りない。
} myFunc; の前に 1 個ある、でいいのか?

>MyMethod<MyFunctor> myMethod(MyFunctor);
これだと MyFunctor 型の引数をとり、MyMethod<MyFunctor> 型を返すメンバ関数 myMethod を
宣言しているんじゃまいか?

>//MyMethod<MyFunctor> myMethod(myFunc);//コンパイル通らない
なんでメンバ変数を宣言してるのに初期化しようとしてるの?

MyMethod<MyFunctor> myMethod;
MyClass() : myMethod(myFunc) {}

じゃねーのか?あと↑だと myFunc との初期化順序が問題になる場合があるかも。
今回の場合、MyClass() : myMethod(MyFunctor()) でいいような気もするが。

775 名前:772 [2005/07/30(土) 14:59:26 ]
すみません } が1つぬけてました。

template<Functor> class MyMethod
にclass の外で定義したfunctorを使うと
意図したとうりの動きをすることを確認しています。



776 名前:デフォルトの名無しさん mailto:sage [2005/07/30(土) 15:06:57 ]
>>775
>class の外で定義したfunctorを使うと
>意図したとうりの動きをすることを確認しています。
本当に?
コピペにかなりミスがあると思うよ
MyMethod::value()
MyClass::MyFunctor::operator()(int a)
の返値の型は?

もし本当に動くなら処理系を教えてね


777 名前:776 mailto:sage [2005/07/30(土) 15:09:07 ]
たぶんこんなことしたいのかな
template <typename Functor>
struct MyMethod {
Functor f_;
MyMethod (Functor f): f_(f) {}
void value () {f_ (10);}
};
struct MyClass {
struct MyFunctor {
void operator () (int a) {
std::cout << a;
}
} myFunc;
MyMethod <MyFunctor> myMethod;
MyClass (): myFunc (), myMethod(myFunc) {}
void value() {myMethod.value();}
};


778 名前:デフォルトの名無しさん mailto:sage [2005/08/02(火) 22:23:20 ]
template<X>
class CHoge
{public:
CHoge( X= typeof(x) ) {}
};
なんてできないの?
自動で型判別してほしい。
自動判別した型を使ってCompile-time Ifもできるとさらにいいんだけど

779 名前:デフォルトの名無しさん mailto:sage [2005/08/02(火) 23:18:35 ]
>>778
>自動で型判別してほしい。
>自動判別した型を使ってCompile-time Ifもできるとさらにいいんだけど
これらはできるけど
例で何がしたいのかさっぱり分かりません


780 名前:デフォルトの名無しさん mailto:sage [2005/08/05(金) 23:15:18 ]
template< ArrayType >
function( ArrayType array)
{
Compile-time If (ArrayType はポインタの配列?)
{
int a= array[0]->value;
}else{
int a= array[0].value;
}
こんなことがしたい

781 名前:デフォルトの名無しさん mailto:sage [2005/08/05(金) 23:30:47 ]
type_traitsでいいんじゃないの?

782 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 00:52:15 ]
個人的には値の配列とポインタの配列を静的多相に扱おうとする行為そのものに
異議を申し立てたい.

783 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 02:36:31 ]
次のようなコードが、Visual C++では通るけどGCCでは通りません。

オブジェクトの名前と番号の型を保持する構造体を用意

template<class S,class I>
struct Types
{
  typedef S String;
  typedef I Integer;
};

この定義を受け取って型を定義するベースクラスを作成

template<class T>
struct Base
{
  typedef typename T::String StringType;
  typedef typename T::Integer IntegerType;
};

そして、これを利用するサブクラスを作成。

template<class T>
struct Derived : public Base<T>
{
  StringType name; //!< ここでコンパイルエラー
  IntegerType number; //!< 同様
};

typedef Types<std::string,int> StdTypes;
Derived<StdTypes> derived;


784 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 02:38:23 ]
続き

以下のように書けばGCCでもコンパイルは通ります。

typename Derived::StringType name;
typename Derived::IntegerType number;

こんな面倒な書き方しかできないなら、
わざわざベースクラスにtypedefした意味がないんですが
何かいい方法ありませんか?


785 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 02:58:54 ]
>>783-784
Base の定義中に typename が必要な理由を知っていれば、無理だと予想が付くだろうに。



786 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 07:54:33 ]
>>783-784
俺だったら
Base::Stringと書けないか
Derivedの中にusing Base::String;と書けばStringが使えないか
の2つをまず試してみる。これでできるかどうかはもちろんしらんが。

787 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 09:04:33 ]
Baseを使うなら、
typename Base<T>::StringType name;
typename Base<T>::IntegerType number;
こうなるから、これこそ、
> わざわざベースクラスにtypedefした意味がない
ので、>>784のやり方が良いだろう。

VC++もそのうち>>783は駄目になることでしょう。


788 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 09:32:41 ]
>>784
それVC7.1のバグらしい。
面倒見が良すぎて、typenameを本来ならば書かなければならない
所を、曖昧さがない場合は無くても通してしまう。

VC7.1でもちゃんと typename は書くべき。

789 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 12:59:29 ]
このスレの難読コードをみて
おれにとて


C++はなかたことになた

790 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 13:03:53 ]
そんなだから、未だに君にとってこの程度が「難読コード」なんだよ。

791 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 13:07:40 ]
俺もtemplateのコードは可読性が低いと思うよ
唯一の弱点だな

792 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 13:32:35 ]
テンプレートとC++「本体」って明らかに別の言語だよな。
概念の異なる2つの言語が混在してるんだから、
可読性が低いのは当たり前。


793 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 15:19:32 ]
>>792
じゃあどういう構文にすればいいよ?


794 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 19:15:56 ]
構文の話なのかな。

795 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 19:21:27 ]
>>784
template<class T>
struct Derived : public Base<T>
{
typedef Base <T> Base_;
typedef typename Base_::StringType StringType;
typedef typename Base_::IntegerType IntegerType;
StringType name;
IntegerType number;
};




796 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 20:27:48 ]
>>795 意味無いじゃん。

797 名前:神゜ mailto:sage [2005/08/06(土) 20:49:53 ]
そろそろ俺の出番か?

798 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 21:04:29 ]
>>784
ベースクラスがテンプレート依存でなければ StringType,IntegerType
は見えるが、そうでない場合は 795 のように書く必要がある。

実はずっと前の GCC で VC7.1 みたくエラーにならない時期が
あったんだが、バージョン上げたらエラーになったんで仕様を
確認したことがあったのを思い出したよ。

799 名前:デフォルトの名無しさん mailto:sage [2005/08/06(土) 23:17:54 ]
>>798
2.95あたりは確かそうだったね


800 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 16:48:53 ]
template<class A>
struct Foo
{
  template<class B>
  struct Bar
  {
  };
};

このBarだけを特殊化するのって、GCCでは

template<>template<>
struct Foo<int>::Bar<int>

って書かなきゃならないんだね。
VC++7.1では

template<>
struct Foo<int>::Bar<int>

で通るんだけど、これはバグなのかな?


801 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 16:55:26 ]
>>800
どっちが規格に準じてるかによるね


802 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 17:00:26 ]
>>800
14.7.3.17 より
"If the declaration of an explicit specialization for such a member appears in namespace scope, the member declaration shall be preceded by a template<> for each enclosing class template that is explicitly specialized."

template<> template<> ... と繰り返すのが正解っぽい。

803 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 17:10:09 ]
>>800
gccを信じてそちらに合わせておけ。

804 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 17:27:08 ]
>>800
gccのバージョンは何?
g++ 3.3.5
だとそれ両方とも通るんだけど
新しいのは通らないのかな?


805 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 18:19:07 ]
template <class T>
typename enable_if<boost::is_integral<T>, void>::type
foo(T t) {}
で関数を定義したりできないのはわかるけど
これでclassのコンストラクターを定義したりしなかったりを決めると

コンストラクターに戻り値が定義されています

と怒られる。何か方法ないのでしょうか?
template <class T>
class A{
typename enable_if<boost::is_integral<T>, void>::type
A(T t) { }
}



806 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 18:44:57 ]
>>805
SFINAEは戻り値の型でやる方法と(デフォルト)引数の型でやる方法の2通りできて,
コンストラクタの場合は戻り値の型を指定できないですから引数の型のほうでやります.

template<class T>
class T{
A(T t, typename enable_if<boost::is_integral<T> >::type * = 0){}
};

こんな感じで.逆に演算子関数の場合は余計なデフォルト引数を指定できないので
戻り値型で,という感じになると思います.

807 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 22:38:01 ]
enable_ifが何をするもんなのか、未だにわかんねえ。
てか、何年英語の勉強してもboostのドキュメントさえ読めない俺ってすげえよ。
よっぽど英語の才能が無いんだな。

808 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 22:41:04 ]
テメェは自己紹介がしたいだけだろ
分からねぇんだったらイチイチ出てくんな

809 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 22:50:40 ]
>>807
SFINAEによるオーバーロードセットのコントロールを簡単に
行うためのユーティリティ。

英語分からなくてもC++分かるんならひたすらソース詠めば
何となく見えてくる、かもよ。

810 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 22:53:46 ]
>>808
なにキレてんのキミ。
相手以上の駄レス書いてたら意味無いのに。

811 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 22:59:07 ]
駄レスとかいってたら、ほとんどがそうだろw

812 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:00:10 ]
ほとんどがそうならなおのこと
突然特定のレスにキレる理由が無いよ。

813 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:03:27 ]
自己顕示欲丸出しの厨房がウザイだけだろ
まあ、どこにでもいるからいちいちキレるのもどうかと思うが

814 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:16:33 ]
キレて説教するほうがよっぽど自己顕示欲激しいと思う。
世に言う自爆ですな。アホくさ。

815 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:17:52 ]
www.boost.org/libs/utility/enable_if.html
ここの「1.2 Background」は、何が問題だって言ってるんですか?



816 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:20:01 ]
説教がどう自己顕示欲につながるんだ??

817 名前:デフォルトの名無しさん [2005/08/07(日) 23:22:14 ]
>>814
ワロス

818 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:29:27 ]
>>816
キレるたびにいちいちスレ違いの書き込みするような奴が
自己顕示欲薄いって言い張る気?

819 名前:デフォルトの名無しさん [2005/08/07(日) 23:30:34 ]
enable_ifがわからんってののどこが自己顕示欲に繋がるのかもわからんけどな

820 名前:デフォルトの名無しさん [2005/08/07(日) 23:30:49 ]
>>818
藻前もキレてるじゃん
あと煽り耐性なさ過ぎ
いい加減スルーしろよ

821 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:31:47 ]
>>815
いや,そこの部分は別に何かが問題だなんて書いてないです.
単にSFINAEというのがどう機能するか(そしてなぜそのような機能が必要なのか)
を説明しているだけです.

822 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:32:15 ]
816が煽りには見えないけどなあ。
普通にズレてるだけで。

823 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:32:55 ]
>>815
あっと,「もしSFINAEがなければこういうことが問題だよね」というのは書いてますけれど.

824 名前:デフォルトの名無しさん [2005/08/07(日) 23:35:03 ]
>>822
分かったからもう出てくんな

825 名前:デフォルトの名無しさん mailto:sage [2005/08/07(日) 23:40:11 ]
本日の推奨NG
「。」「顕示」「煽り」「キレ」
すっきりして(・∀・)イイ!!



826 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 02:07:36 ]
expressional template
VC.net2003だと、ちょっと複雑な式を書いただけで
コンパイル通らない。
そういうものなの?
gccなら通るのかな

827 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 02:12:44 ]
>>826 その「ちょっと複雑な式」とやらを晒すとレスが付くかもしれない。

828 名前:デフォルトの名無しさん [2005/08/08(月) 03:35:21 ]
>>826
現存する如何なるコンパイラでも通らない程複雑(広義の)なコードに問題ありに100円。


829 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 04:40:19 ]
ネストが17超えるとか?


830 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 15:16:31 ]
いろんな要素が混じってるので必ずしもexpressional templateが
原因でないのかもしれないけど

boost::numeric::ublas::matrix & A(){return A_ }
boost::numeric::ublas::matrix & B(){return B_ }

B() = prod( A(), A())*3 + B() + ....

こんな感じかな.全部はさらせないのですまそ

831 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 01:41:27 ]
>>830
エラー貼ったがいいよ
もし膨大なら
再現するコンパイル可能な最小のコードを貼って


832 名前:831 mailto:sage [2005/08/09(火) 01:45:25 ]
>コンパイル可能な
おっとコンパイルは通らないのか

>あなたがコンパイル通らないことを理不尽に思う
に訂正

ようするにテストする側の身になってコードを
貼ってください


833 名前:デフォルトの名無しさん mailto:sage [2005/08/09(火) 11:45:51 ]
>>830
>こんな感じかな.全部はさらせないのですまそ

じゃあ、他の人にエラーの原因を調べてもらうのも諦める事ですな。
証拠不十分なまま、証言台に立つような物ですぞ。

834 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 08:39:28 ]
だれもいない

835 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 20:28:20 ]
ホントにだれもいないのかよ



836 名前:デフォルトの名無しさん [2005/08/20(土) 20:39:26 ]
いねーよ

837 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 20:40:28 ]
質問やら話題があれば人は自然と集まってくる。

838 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 20:52:57 ]
おまえら
”てんぷれーと”にだまされてないか?
”しーぷらぷらのてんぷれーと”って結局あれだよ。
中途半端。
そう中途半端。
LISPに比べたら。
全然読み易くならない。
いろんな括弧であふれてLISPの方がまだサルのように読みやすい。
まあここにタムロしてるおまえらの言い分は判ってるよ
こうだろ、静的カタカタ型が重要なんです!
LISPじゃすぴーどでないよプププ
とかな。
ばーか。
カタなんかより柔軟性なんだよこのご時世はよ
カタカタうるせーのなんのって、笑うわ。
C++考えた奴みたいにハゲろ
全員

839 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 20:59:39 ]
確かに、「ネイティブコード吐く言語じゃないと速度が」
とか必死に言ってる奴に優秀なプログラマはいないな。


840 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 21:10:42 ]
しーぷらぷらの処理系。
てんぷれーとバグだらけ。
笑うわ。
いったい何年てんぷれーとやってんだよ
おまえらがべんだーの修正待つあいだに
おれLISPで新しいマクロどっさり作る
生産性バカたけぇーわLISPはよ
LISPはカタないからすぴーどでないよプププて、
そりゃ頭がかてえ証拠だな。
そんな奴は引退したほーがいいんじゃねーかなあ
LISPにカタないなら組み込めよ、ハゲども
ぶーとすとらっぷとか考えろよ
わかるか?ぶーとすとらっぷって。
しーぷらぷらにはそんながいねんはないかもなあ。
最適化なんかやりやすいなーすいすいいけるぜ
こんすの海の中にいると不満なんてすぐ解消する
それがLISP。
まあ頭のかたいカタカタ野郎は
やっぱりC++考えた奴みたいにハゲろ
全員

841 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 21:16:51 ]
>>839よりは優秀だけどね。

842 名前:マイク ◆yrBrqfF1Ew mailto:sage [2005/08/20(土) 21:31:32 ]
C++をしーぷらぷらなんて言うのは無能。

843 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 21:59:52 ]
C++でLisp系の俺言語&処理系作るのが最近の俺の趣味なんだが、
なんかこいつの仲間と思われたくないな、恥ずかしくて。

844 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 22:59:08 ]
>>842
シープラスプラス?
それともシーたすたす?


845 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 23:33:28 ]
しーいんくりめんと



846 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 23:43:58 ]
C++
後置ということは、まだ本当のC++にはであてないわけだ

847 名前:デフォルトの名無しさん mailto:sage [2005/08/20(土) 23:45:24 ]
C++には出会えている
++Cに出会えてないだけ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<262KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef