ログインしていません。このフォーラムはログインユーザのみに投稿が許可されています。投稿する場合はログインしてください。
ダウンロード
Magazine
開発
アカウント
ダウンロード
Magazine
開発
ログイン
アカウント/パスワードを忘れた
アカウント作成
言語
ヘルプ
言語
ヘルプ
×
ログイン
ログイン名
パスワード
×
アカウント/パスワードを忘れた
日本語の翻訳状況
カテゴリ:
ソフトウェア
人物
PersonalForge
Magazine
Wiki
検索
OSDN
>
ソフトウェアを探す
>
システム
>
ネットワーク
>
CLX C++ Libraries
>
フォーラム
>
開発者
>
スコープ解決演算子について
CLX C++ Libraries
概要
プロジェクト概要
開発ダッシュボード
Webページ
開発メンバー
画像ギャラリー
公開フィード一覧
活動
統計情報
活動履歴
ダウンロード
リリース一覧
統計
ソースコード
コードリポジトリリスト
Subversion
リポジトリ閲覧
チケット
チケット一覧
マイルストーン一覧
チケットの種類一覧
コンポーネント一覧
よく使われるチケット一覧のリスト/RSS
新規チケット登録
コミュニケーション
フォーラム一覧
ヘルプ (2)
公開討議 (19)
開発者 (24)
ニュース
フォーラム:
開発者
(スレッド #21892)
話題(スレッド)一覧に戻る
RSS
スコープ解決演算子について (2009-03-03 12:22 by
cielquis
#42273)
チケットに引用
「clxで、変数をホストのバイトオーダーからネットワークのバイトオーダーに
変換するhtons()というスタンダードライブラリにある関数を使用しているのですが、C++の名前空間の外側、つまり、大域的という事で、
::htons()
と、スコープ解決演算子::を使用しているのですが、darwinでは、これはマクロの為、エラーになっていました。Xcodeのビルドのプリプロセスで確認いたしました。」
http://qwik.jp/objc20-reading/30.html
上記への対応.
当初,大域空間で定義されている関数を呼び出すときは,::f() のような形で記述していたが,上記のような問題が発生するようなので f() と記述する事とする.比較的最近に実装したものは,上記のようなスコープ解決演算子は付けなくなっていたので,これを機に統一する事とする.
RE: スコープ解決演算子について (2009-03-15 00:02 by
cielquis
#42550)
チケットに引用
何故グローバルな名前空間で定義されている関数を呼び出すときに,スコープ解決演算子を使用していたのかを思い出した.クラス内に同名のメソッドがある場合,引数が違ってもグローバル空間に定義されている関数を探しに行ってくれないからだった.
udp::socket, tcp::socket, tcp::acceptor, icmp::scoket, ssl::socket, ssl::acceptor 辺りでこの問題が出てくる.対象となる関数は,connect(), accept(), bind(), send(), recv() 辺り.
なので,以下の関数をコールするときはスコープ解決演算子を付ける事とする.
::connect(), ::bind(), ::listen(), ::accept(), ::send(), ::recv()
これ以外の関数のグローバル名前空間へのスコープ解決演算子は取り払う.尚,sendto() と recvfrom() は,send_to(), recv_from() のような規則でメソッド名を付けているのでこちらはスコープ解決演算子は付けない.
#42273
への返信