問題タブ [manipulators]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
1715 参照

c++ - クラスのカスタム マニピュレータ

引数付きのストリーム マニピュレータを作成しようとしています。私は3つのintのCDate(年、月、日)を持つクラスを持っています。したがって、マニピュレータを作成する必要がありdate_format(const char*)ます。例:

出力は次のようになります。

私はそれを使用する必要があると思います

しかし、方法がわかりません。

0 投票する
3 に答える
472 参照

c++ - C++ マニピュレーター

私はC++の学習を始めました。この言語は素晴らしいと思いますが、学習過程で困惑することはほとんどありません。この例では:

この例では、なしsetiosflags(ios::...)で入力しただけでプログラムが同じことを行うのに、なぜ全体を入力するのでしょうか?showpointsetiosflags

2 番目の質問は簡単です。次の場合:

int後で とは異なる値に変更する場合、なぜ の値を定義するの0でしょうか?

0 投票する
1 に答える
59 参照

c++ - テンプレート、'out << "("' の 'operator<<' に一致しません

テンプレートの << 演算子をオーバーロードしようとしていますが、このエラーが発生しています。

私が達成しようとしているのは、オーバーロードされた演算子 << です。これは、開き括弧、「、」で区切られたすべてのタブ項目、および閉じ括弧を 'out' に提供します。

ここに私のコードの一部があります:

そして最悪の部分は、ビルド ログに 230 行のエラー行が表示され、この時点で少し混乱していることです。

0 投票する
2 に答える
163 参照

c++ - ostream を操作する関数を呼び出す場合、括弧は必要ありません。C++

かっこなしで関数を呼び出すことはできませんが、次のソース コードがあるとします。

左シフト演算子のオーバーロードはありませんが、test(ostream& os)関数内で関数coutを呼び出すmain場合、括弧は必要ありません。私の質問はなぜですか?

0 投票する
1 に答える
123 参照

c++ - 標準 C++ iostream マニピュレータの状態をポーリングできますか?

特にアプリケーション クラスで、iostream << 演算子のオーバーロードを記述する場合、そのストリーム オブジェクトで有効な標準マニピュレータに基づいて、そのオーバーロードの動作を変更することが望ましい場合があります。<< オーバーロードの実装内からストリームの標準マニピュレータの状態をポーリングできますか?

たとえば、

~とは異なる振る舞いをする

違いを超えて、<< のカスタム オーバーロードは、その実装でメンバー << に引き継がれている可能性があります。

iostream のマニピュレータの状態をポーリングできる場合、これはどのように行われますか? また、マニピュレータの状態を同様にポーリングできるように、カスタム マニピュレータを実装する人は何をすべきでしょうか?

0 投票する
1 に答える
63 参照

c++ - マニピュレータは何らかの方法でストリーム タイプを変換しますか?

ostringstream匿名を使用して生成しようとしていますstring:匿名の文字列ストリームを使用して文字列を構築します

ただし、マニピュレータを使用すると、コンパイルできなくなったようです。

しかし、それはgcc 5.1 でも許可されていないようです:

prog.cpp: 関数内int main():
prog.cpp:8:109: エラー: std::basic_ostringstream<char>::basic_ostringstream(std::basic_ostream<char>&)
const auto myString(static_cast<ostringstream>(ostringstream{} << setfill('!') << setw(13) << "lorem ipsum").str());


/usr/include/c++/5/iomanip:45:0 から含まれるファイル内の呼び出しに一致する関数がありません
: prog.cpp:1 から:
/ usr/include/c++/5/sstream:582:7: 注: 候補
std::basic_ostringstream<_CharT, _Traits, _Alloc>::basic_ostringstream(std::basic_ostringstream<_CharT, _Traits, _Alloc>&&)[with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>]
basic_ostringstream(basic_ostringstream&& __rhs)

/usr/include/c++/5/sstream:582:7: 注: 引数 1 から /usr/include/c++/5/sstream:565:7 への既知の変換はありませんstd::basic_ostream<char>:std::basic_ostringstream<char>&&
注: 候補:
std::basic_ostringstream<_CharT, _Traits, _Alloc>::basic_ostringstream(const __string_type&, std::ios_base::openmode)[with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::basic_ostringstream<_CharT, _Traits, _Alloc>::__string_type = std::basic_string<char>; std::ios_base::openmode = std::_Ios_Openmode]
basic_ostringstream(const __string_type& __str,

/usr/include/c++/5/sstream:565:7: 注: 引数 1 から /usr/include/c++/5/sstream:547:7 への既知の変換はありませんstd::basic_ostream<char>:const __string_type& {aka const std::basic_string<char>&}
注: 候補:
std::basic_ostringstream<_CharT, _Traits, _Alloc>::basic_ostringstream(std::ios_base::openmode)[_CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::ios_base::openmode = std::_Ios_Openmode]
basic_ostringstream(ios_base::openmode __mode = ios_base::out)

/usr/include/c++/5/sstream:547:7: 注: 引数 1 からstd::basic_ostream<char>への既知の変換はありませんstd::ios_base::openmode {aka std::_Ios_Openmode}

これは別の gcc ストリームのバグですか、それとも私がしていることは実際には違法ですか?