- 1 名前:デフォルトの名無しさん mailto:sage [2012/05/08(火) 04:55:24.99 ]
- C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレに お願いします。 前スレ C++相談室 part94 toro.2ch.net/test/read.cgi/tech/1329512856/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.78【環境依存OK】 toro.2ch.net/test/read.cgi/tech/1331894668/ ■長いソースを貼るときはここへ。■ codepad.org/ ideone.com/
- 784 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 00:25:59.51 ]
- template <typename T> typename std::enable_if<std::is_base_of<Hoge, T>::value, T>::type getObject(){return T();};
こうだろ
- 785 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 00:28:09.48 ]
- enabled_ifはキモいなあ
今回はたまたま戻り値の型でしかTが使われてないけど 2箇所以上で使われている場合に 1箇所だけenabled_ifってのも何かバランス悪いし
- 786 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 00:28:38.38 ]
- enable_ifだよ
ミスったよ
- 787 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 00:41:45.51 ]
- boostなんて実用はありない
あんなのヲタが使うもの ソースが汚くいことこの上ない
- 788 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 00:47:04.52 ]
- 自分が使いこなせないからってライブラリのせいにする人はちょっと…
- 789 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 00:53:53.73 ]
- >>784
今さっきなんとなくわかりました。長いのは戻り値だったんですねー… Boostをインストールしてみて、 きびしそうなら別の方法を執ってみます。 みなさんわざわざありがとうございました。
- 790 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 00:56:23.34 ]
- >>788
使いこなせないとどこに書いてあるんだ? 脳内補完もここまで来ると感服だなw
- 791 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 02:38:33.34 ]
- STLにTree構造データないのは何故だ
- 792 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 03:04:06.37 ]
- Setは?
- 793 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 04:11:05.53 ]
- ありない
ありない ありない 汚くい 汚くい 汚くい
- 794 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 06:05:26.57 ]
- >>780
そんな事するんだったらconst定数使った方がましじゃね? template<const char *array> class Example; namespace Keys { const char alpha[] = "Alpha"; const char beta[] = "Alpha"; } Example< Keys::alpha > object; >>782 template<class type> type Example::Function() { type value; ExampleBase *base_check = &value; // 親子関係がなければコンパイルエラー return value; }
- 795 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 06:27:38.53 ]
- >>791
map, set, priority_qeueは内部的にtree使ってる std::make_heapを使えば自前の二分木を楽に作れる
- 796 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 08:43:30.62 ]
- class Object {};
class User { public: User(std::shared_ptr<Object> o = std::make_shared<Object>()) : o_(o) };
- 797 名前:796 mailto:sage [2012/06/14(木) 08:45:31.56 ]
- すみません、記述途中で投稿してしまいました。
デフォルト引数にstd::make_shared〜とやると、make_sharedがglobal namespaceのメンバーでないとエラーが出てしまいます。 当然、using namespace std;を行うと、正しくコンパイルできるのですが、それはしたくありません。 どのように記述するのが正しいのでしょうか?
- 798 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 09:24:56.76 ]
- VC++が悪い
- 799 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 10:06:41.32 ]
- そのコンストラクタはデフォルト引数の指定無しにして引数なしのコンストラクタも書けばいいじゃないか
- 800 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 11:35:13.06 ]
- こんなのはどう?
User(std::shared_ptr<Object> o = [](){return std::make_shared<Object>();}()) : o_(o) {}
- 801 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 11:44:08.99 ]
- >>769
そもそも勉強用にMSVC使うってのが間違ってるだろ。 LLVM/clang使えばいろいろ捗るぞ。ここまで無料で高品質でライセンスの緩いコンパイラは珍しいし他にない。 本来ならば金の要らないLinux前提だしmingw入れればwindowsでも動くしな。
- 802 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 11:54:10.94 ]
- Linux前提やクロス開発を考慮する場合はともかく
Windows前提ならmingw選ぶのは間違ってる
- 803 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 12:40:59.56 ]
- windows使ってるならcygwin入れろ。
ファイル消せなくなって困るぞ。
- 804 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 12:45:48.23 ]
- 問題なのはcygwinを入れないとファイルが消せなくなるんじゃなくて
cygwinを入れたせいでファイルを消せなくなる点なんだよな。
- 805 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 12:49:49.76 ]
- Windows前提をはずすのが一番って尊師が言ってた
- 806 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 13:30:06.78 ]
- そりゃあ尊師はUNIXライク前提ですから
- 807 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 13:52:33.44 ]
- cygwin()
- 808 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 16:22:24.28 ]
- マハーポーシャでPC組んでLinux入れよう
- 809 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 18:03:24.84 ]
- LinuxはTagジャンプをなんとかしろ
global.elとか仕様頻繁に換えんな
- 810 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 18:28:20.78 ]
- カーネル開発者や鳥のメンテナにEmacsの文句言うのかー
- 811 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 19:22:16.79 ]
- C++で、外部の.exeファイルを実行するにはどうすればいいですか?
使っているソフトはVS2010です
- 812 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 19:30:59.40 ]
- >>811
【初心者歓迎】C/C++室 Ver.78【環境依存OK】 toro.2ch.net/test/read.cgi/tech/1331894668/l50
- 813 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 19:39:57.21 ]
- 環境依存でないsystemがあるじゃないかー
(使い方はある程度環境に依存はするけど)
- 814 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 19:41:19.39 ]
- #include <cstdlib>
int std::system(const char*); のことかな。
- 815 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 20:37:55.88 ]
- >>811
単に実行するならexecとか 標準入出力の内容を操作したいならpopen/_popenを使ふ
- 816 名前:デフォルトの名無しさん mailto:sage [2012/06/14(木) 22:05:13.07 ]
- そんな環境依存の事を言われても・・・
- 817 名前:デフォルトの名無しさん mailto:sage [2012/06/15(金) 22:09:00.46 ]
- popenか_popenどっちも持ってないなんて組み込み環境ぐらいだろ
- 818 名前:デフォルトの名無しさん mailto:sage [2012/06/15(金) 22:24:09.16 ]
- 規格に無いものは開発環境ごとのスレでやった方がいい
- 819 名前:デフォルトの名無しさん mailto:sage [2012/06/15(金) 22:26:06.03 ]
- POSIXぐらい、半標準なんだからいいだろうに
標準ライブラリなんて元々POSIXのサブセットだぞ
- 820 名前:デフォルトの名無しさん mailto:sage [2012/06/15(金) 22:35:30.41 ]
- pthreadsもここでやるのか?とか
あまり手広く広げてもなあ
- 821 名前:デフォルトの名無しさん mailto:sage [2012/06/15(金) 22:49:13.90 ]
- posix名前空間が用意されたとはいえ
現状std名前空間にあるC関数もあんまり積極的には扱ってないだろ
- 822 名前:デフォルトの名無しさん mailto:sage [2012/06/15(金) 23:06:35.34 ]
- C関数でないと無理なものはまあ扱わなくもない
|

|